假设我有一个包含 2012/09/21 23:59:59 的开始对象和一个包含 2012/09/22 00:01:02DateTime
的结束对象。DateTime
这两个对象之间的差异只有一分钟多一点,但属于这个日期范围的天数等于 2。
我读过其他类似的问题,我认为TimeSpan
类DateTime
不提供执行此类计算的方法。如何计算属于某个日期范围的天数?
采用:
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。
您可以执行以下操作:
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
不
(dateTime2 - dateTime1).TotalDays
为你工作?