如何在C#中找到两个DateTime之间的正数差值

7

我有两个DateTime变量,无论哪一个在时间上都比另一个大。

Datetime date1, date2;

我应该如何按“天”为基础找到两个日期的正差异?
`(date1-date2)` 可能会产生正/负结果,但我还需要天数的差异。
假设两者在同一个时区。
5个回答

17
double days = Math.Abs((date1-date2).TotalDays);

4
如果您想要一个(无符号的)整数值:
Math.Abs(date1.Subtract(date2).Days)

如果你想要一个(无符号)双精度浮点数值:
Math.Abs(date1.Subtract(date2).TotalDays)

1

您可以尝试以下方法:

Math.Abs((dateA - dateB).Days);

或者如果您希望结果为分数:

Math.Abs((dateA - dateB).TotalDays);

1

只需在时间跨度上使用Days属性(它是date1 - date2的结果类型)。它会返回一个带符号的整数。


1

使用减法运算符和 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));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接