第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

計(jì)算兩個日期之間月份的差異

計(jì)算兩個日期之間月份的差異

慕的地6264312 2019-10-17 10:48:07
在C#/。NET中TimeSpan有TotalDays,TotalMinutes等等,但是我不知道總月差的公式。每月變化的日子和leap年不斷讓我失望。我如何獲得TotalMonths?編輯對不起,不是更清晰:我知道我不能真正從得到這個TimeSpan,但我想用TotalDays而TotalMinutes將表達(dá)什么,我一直在尋找......除了我試圖獲得總月一個很好的例子。例如:2009年12月25日-2009年10月6日= 2 TotalMonths。10月6日至11月5日等于0個月。1月11日,1個月。12月6日,2個月
查看完整描述

3 回答

?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個贊

您將無法從中獲取價(jià)格TimeSpan,因?yàn)椤霸隆笔强勺兊挠?jì)量單位。您必須自己計(jì)算它,并且必須弄清楚您希望它如何工作。


例如,要日期喜歡July 5, 2009并August 4, 2009產(chǎn)生一個月或零月區(qū)別?如果你說這應(yīng)該產(chǎn)生一個,然后怎么樣July 31, 2009和August 1, 2009?是那一個月?它僅僅是Month日期值的差異,還是與實(shí)際時(shí)間跨度更相關(guān)?確定所有這些規(guī)則的邏輯很重要,因此您必須確定自己的規(guī)則并實(shí)施適當(dāng)?shù)乃惴ā?/p>


如果您想要的只是月份中的不同(完全不考慮日期值),則可以使用以下方法:


public static int MonthDifference(this DateTime lValue, DateTime rValue)

{

    return (lValue.Month - rValue.Month) + 12 * (lValue.Year - rValue.Year);

}

請注意,這將返回一個相對差,這意味著如果rValue大于lValue,則返回值將為負(fù)。如果需要絕對差異,可以使用以下方法:


public static int MonthDifference(this DateTime lValue, DateTime rValue)

{

    return Math.Abs((lValue.Month - rValue.Month) + 12 * (lValue.Year - rValue.Year));

}


查看完整回答
反對 回復(fù) 2019-10-17
?
鳳凰求蠱

TA貢獻(xiàn)1825條經(jīng)驗(yàn) 獲得超4個贊


這是比較痛苦的純.NET做。我建議我自己的Noda Time庫,該庫是專門為以下目的而設(shè)計(jì)的:


LocalDate start = new LocalDate(2009, 10, 6);

LocalDate end = new LocalDate(2009, 12, 25);

Period period = Period.Between(start, end);

int months = period.Months;

(還有其他選擇,例如,即使您只想數(shù)月甚至數(shù)年,也可以使用Period period = Period.Between(start, end, PeriodUnits.Months);)


查看完整回答
反對 回復(fù) 2019-10-17
?
瀟瀟雨雨

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個贊

也許您不想知道月份分?jǐn)?shù);這段代碼呢?



public static class DateTimeExtensions

{

    public static int TotalMonths(this DateTime start, DateTime end)

    {

        return (start.Year * 12 + start.Month) - (end.Year * 12 + end.Month);

    }

}


//  Console.WriteLine(

//     DateTime.Now.TotalMonths(

//         DateTime.Now.AddMonths(-1))); // prints "1"


查看完整回答
反對 回復(fù) 2019-10-17
  • 3 回答
  • 0 關(guān)注
  • 832 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號