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

时间:2013-09-17 12:50:16

标签: c# asp.net

我需要计算两个日期之间的天数作为整数值,到目前为止,我已尝试过以下内容:

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

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

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

2 个答案:

答案 0 :(得分:2)

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 

答案 1 :(得分:0)

试试吧。

        DateTime dt1 = DateTime.Now;
        DateTime dt2 = CurrentDtae;

        int result = (int)((dt2 - dt1).TotalDays);