我有两个日历,每个都会从calendar.SelectedDate返回一个DateTime。减去两个日期
我该如何去相互减去两个选定的日期,给我两个选择之间的天数?
有一个calendar.subtract(),但它需要一个TimeSpan而不是DateTime。
我有两个日历,每个都会从calendar.SelectedDate返回一个DateTime。减去两个日期
我该如何去相互减去两个选定的日期,给我两个选择之间的天数?
有一个calendar.subtract(),但它需要一个TimeSpan而不是DateTime。
您可以使用someDateTime.Subtract(otherDateTime)
,这将返回TimeSpan
,它具有TotalDays
属性。
只需使用:
TimeSpan difference = end - start;
double days = difference.TotalDays;
需要注意的是,如果你想将它们视为日期你应该使用
TimeSpan difference = end.Date - start.Date;
int days = (int) difference.TotalDays;
这样,你不会得到不同的结果取决于时间。
(您可以使用Subtract
方法,而不是-
运营商,如果你想,但我个人觉得更清晰的使用操作。)
这是一个大胆的人纠正SkeetCode(tm)。祝福Bhushan。 – keithl8041
想想吧。
你如何表达两个日期之间的差异?再过几天?
这就是为什么你需要的时间跨度
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);
实际上,使用TimeSpan来表示两个日期之间的差异存在各种问题,但在*这种情况下它没关系:) –
感谢您的所有输入。其实我只需要一天,我没有看到Subtract方法也可以采用DateTime参数,这意味着我需要的只是这个:untilCalendar.SelectedDate.Subtract(fromCalendar.SelectedDate).Days –
@sd_dracula:你确实更喜欢使用'减法'的方法而不是操作员? –
您也可以通过'减()''一和TimeSpan'它会返回一个'DateTime'。 http://msdn.microsoft.com/en-us/library/ae6246z1%28v=vs.110%29.aspx – northben