一天的特定日期是多少天?

时间:2012-09-22 11:25:46

标签: c# .net algorithm

假设我有一个包含2012/09/21 23:59:59的开始DateTime对象和包含2012/09/22 00:01:02的结束DateTime对象。这两个对象之间的差异只有一分钟,但属于此日期范围的天数等于2.

我已经阅读了其他类似的问题,我认为TimeSpanDateTime类不提供执行此类计算的方法。如何计算属于某一特定日期的天数?

3 个答案:

答案 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

为你工作?