1

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

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

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

但是,这两种说法都没有给我正确的输出。第一个是给我错误 Unable to cast object of type 'System.TimeSpan' to type 'System.IConvertible'。第二个是给Days0。

4

2 回答 2

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 
于 2013-09-17T12:57:47.393 回答
0

试试这个。

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

        int result = (int)((dt2 - dt1).TotalDays);
于 2013-09-17T15:06:48.057 回答