我有两个DateTime变量,无论哪一个在时间上都比另一个大。
Datetime date1, date2;
我应该如何按“天”为基础找到两个日期的正差异?
`(date1-date2)` 可能会产生正/负结果,但我还需要天数的差异。
假设两者在同一个时区。
double days = Math.Abs((date1-date2).TotalDays);
Math.Abs(date1.Subtract(date2).Days)
Math.Abs(date1.Subtract(date2).TotalDays)
您可以尝试以下方法:
Math.Abs((dateA - dateB).Days);
或者如果您希望结果为分数:
Math.Abs((dateA - dateB).TotalDays);
使用减法运算符和 TimeSpan.Duration()
方法。
该方法返回当前 TimeSpan
对象的绝对值。
示例代码:
public static int GetDayDifference(DateTime dateTime1, DateTime dateTime2)
{
TimeSpan diff = (dateTime1 - dateTime2).Duration();
return diff.Days;
}
让我们进行测试:使用这些 DateTime 变量,
DateTime dateTime1 = new DateTime(2000, 1, 1);
DateTime dateTime2 = new DateTime(2000, 1, 3);
现在以下两行代码将会得到相同的结果(2天):
GetDayDifference(dateTime1, dateTime2));
GetDayDifference(dateTime2, dateTime1));