我需要计算两个日期之间的天数作为整数值,到目前为止,我已尝试过以下内容:
int Days = Convert.ToInt32(CurrentDate.Subtract(DateTime.Now));
int Days = Convert.ToInt32((CurrentDate - DateTime.Now).Days);
但是,这两个声明都没有给我正确的输出。第一个是给我错误无法将'System.TimeSpan'类型的对象强制转换为'System.IConvertible'。第二个是Days
为0。
答案 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);