使用 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。
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);