2012-09-22 37 views
1

比方說,我有一個開始DateTime對象包含2012/09/21 23:59:59和結束DateTime對象包含2012/09/22 00:01:02。這兩個對象之間的差異稍微超過一分鐘,但屬於此日期範圍的天數等於2.多少天屬於一定範圍的日期?

我已閱讀其他類似問題,並且我認爲TimeSpanDateTime類不會提供執行此類計算的方法。如何計算屬於某個日期範圍的天數?

回答

4

用途:

DateTime dateTime1 = DateTime.Parse("2012/09/21 23:59:59"); 
DateTime dateTime2 = DateTime.Parse("2012/09/22 00:01:02"); 
TimeSpan difference = dateTime1 - dateTime2; 

變量difference包含兩個日期之間的時間。例如,使用TotalDays屬性來獲取天數的差異。

如果你要排除的時間部分,使用Date財產上的日期時間,例如:

TimeSpan difference = dateTime1.Date - dateTime2.Date; 

TotalDays將是1在這種情況下,而不是0

+0

呀,你是對的!兩個'Date'屬性之間的區別:'int n =(int)((dateTime2.Date - dateTime1.Date).TotalDays)+ 1' – enzom83

0

(dateTime2 - dateTime1).TotalDays 

爲你工作?

0

我已閱讀其他類似的問題,我認爲TimeSpan和DateTime類不提供執行此類型 計算的方法。

當然,他們這樣做。

TimeSpan是要使用的類。我想你正在尋找TotalDays財產,是不是?

DateTime date1 = ...; 
DateTime date2 = ...; 
TimeSpan difference = date2 - date1; 
int totalNumberOfDays = difference.TotalDays; 
1

你可以做到以下幾點:

System.DateTime dtTodayNoon = new System.DateTime(2006, 9, 13, 12, 0, 0); 
System.DateTime dtTodayMidnight = new System.DateTime(2006, 9, 13, 0, 0, 0); 
System.TimeSpan diffResult = dtTodayNoon.Subtract(dtYestMidnight); 
Console.WriteLine("Yesterday Midnight - Today Noon = " + diffResult.Days); 
Console.WriteLine("Yesterday Midnight - Today Noon = " + diffResult.TotalDays); 
Console.ReadLine(); 

如果您希望包括夏令時:

System.TimeSpan diffResult = dtTodayNoon.ToUniversalTime().Subtract(dtYestMidnight.ToUniversalTime()); 

你可以使用DATETIMEOFFSET太多,如果時區是重要的