使用 c# 作为整数值的两个日期之差

本文关键字:两个 日期 整数 使用 | 更新日期: 2023-09-27 18:31:32

我需要将 2 个日期之间的天数计算为整数值,到目前为止,我已经尝试了以下方法:

int Days = Convert.ToInt32(CurrentDate.Subtract(DateTime.Now));
int Days = Convert.ToInt32((CurrentDate - DateTime.Now).Days);

但是,这两个语句都没有给我正确的输出。第一个是给我错误无法将类型"System.TimeSpan"的对象转换为类型"System.IConvertible"。第二个是将Days定为 0。

使用 c# 作为整数值的两个日期之差

TimeSpan.Days已经是一个int值,所以你不需要强制转换它:

int Days = (CurrentDate - DateTime.Now).Days;

所以我假设 0 天是正确的。什么是CurrentDate

如果要根据小时部分对TimeSpan进行舍入,可以使用此方法:

public static int DaysRounded(TimeSpan input, MidpointRounding rounding = MidpointRounding.AwayFromZero)
{
    int roundupHour = rounding == MidpointRounding.AwayFromZero ? 12 : 13;
    if (input.Hours >= roundupHour)
        return input.Days + 1;
    else
        return input.Days;
}
int days = DaysRounded(TimeSpan.FromHours(12)); // 1 

试试这个。

        DateTime dt1 = DateTime.Now;
        DateTime dt2 = CurrentDtae;
        int result = (int)((dt2 - dt1).TotalDays);