减去两个日期

时间:2012-06-03 15:54:01

标签: c# datetime calendar timespan

我有两个日历,每个日历都从calendar.SelectedDate。

返回DateTime

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

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

3 个答案:

答案 0 :(得分:43)

您可以使用someDateTime.Subtract(otherDateTime),这会返回TimeSpan,其TotalDays属性。

答案 1 :(得分:30)

只需使用:

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

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

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

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

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

答案 2 :(得分:3)

考虑一下。
你如何表达两个日期之间的差异?另一个日期?
这就是你需要时间跨度

的原因
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);