减去两个日期

我有两个日历,每个都从calendar.SelectedDate返回一个DateTime。

如何相互减去两个选定的日期,给我两次选择之间的天数?

有一个calendar.Subtract()但它需要TimeSpan而不是DateTime。

您可以使用someDateTime.Subtract(otherDateTime) ,这将返回具有TotalDays属性的TimeSpan

只需使用:

 TimeSpan difference = end - start; double days = difference.TotalDays; 

请注意,如果您想将它们视为日期 ,则应该使用它们

 TimeSpan difference = end.Date - start.Date; int days = (int) difference.TotalDays; 

这样,根据时间的不同,你不会得到不同的结果。

(如果需要,可以使用Subtract方法而不是-运算符,但我个人觉得使用运算符更清楚。)

想一想。
你如何表达两个日期之间的差异? 另一个日期?
这就是你需要TimeSpan的原因

 DateTime dtToday = new System.DateTime(2012, 6, 2, 0, 0, 0); DateTime dtMonthBefore = new System.DateTime(2012, 5, 2, 0, 0, 0); TimeSpan diffResult = dtToday.Subtract(dtMonthBefore); Console.WriteLine(diffResult.TotalDays);