2013-06-19 38 views
0

我有開始日期(假設爲2013年1月15日)以及從開始日期(結束日期)開始經過的總天數(假設爲395天)來作爲02/13/2014)。現在我怎麼計算這幾天有多少月。如果我有開始日期和經過的天數,如何計算月數

+0

相關/有用:http://msdn.microsoft.com/en-us /library/system.datetime.aspx –

+4

你對「月」的定義是什麼? – Xaruth

+0

+1 Xaruth的問題。你需要定義「這些日期之間有多少個月」的含義。從1月31日開始,持續時間爲1天,結束日期爲2月1日 - 但那是一個月還是零? – Chris

回答

0

根據你對月份的定義,你可以只做Math.Ceil(days/30)Math.Floor(days/30)

可以循環添加個月from日期:

DateTime from = new DateTime(2013, 01, 15); 
DateTime to = from.AddDays(395); 
var months = 0; 
var date = from; 

while(date <= to) 
{ 
    ++months; 
    date = date.AddMonths(1); 
} 

不同的技巧是要做到:

DateTime diff = DateTime.MinValue + (to - from); 

// note: MinValue is 1/1/1 so we have to subtract... 
var years = diff.Year - 1; 
var months = diff.Month - 1; 

months += years * 12; 
+0

'System.TimeSpan'不包含您爲'TotalDays'更改的'Months' – Xaruth

+0

的定義。那是395,不是嗎? – Xaruth

+0

對不起,困惑。正確的答案已到位;-) –

相關問題