41

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

如何从彼此中减去两个选定的日期,给我两个选择之间的天数?

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

4

3 回答 3

53

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

于 2012-06-03T15:56:12.380 回答
35

只需使用:

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

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

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

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

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

于 2012-06-03T15:56:20.130 回答
3

想想看。
你如何表达两个日期之间的差异?与另一个约会?
这就是您需要 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);
于 2012-06-03T15:59:00.573 回答