假设我有一个包含2012/09/21 23:59:59的开始DateTime
对象和包含2012/09/22 00:01:02的结束DateTime
对象。这两个对象之间的差异只有一分钟,但属于此日期范围的天数等于2.
我已经阅读了其他类似的问题,我认为TimeSpan
和DateTime
类不提供执行此类计算的方法。如何计算属于某一特定日期的天数?
答案 0 :(得分: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属性来获取天数差异。
如果要排除时间部分,请在DateTime上使用Date属性,例如:
TimeSpan difference = dateTime1.Date - dateTime2.Date;
在这种情况下,TotalDays将为1而不是0。
答案 1 :(得分: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
答案 2 :(得分:0)
不
(dateTime2 - dateTime1).TotalDays
为你工作?