下面的代码有一个小问题,无论天数相隔多远,“天数”变量似乎始终为 0。
你能看出有什么明显的错误吗?
System.TimeSpan span = dates[0] - dates[1]; // e.g. 12/04/2010 11:44:08 and 18/05/2010 11:52:19
int days = (int)span.TotalDays;
if (days > 10) //days always seems to be 0
{
throw new Exception("Over 10 days");
}
谢谢
最佳答案
当您从较早的日期中减去较晚的日期时,根据您的评论,TotalDays 将为负数。在您的示例中,-36。
因此 (days > 10)
的比较将失败。你应该使用
int days = Math.Abs((int)span.TotalDays);
假设您没有将日期[0] 设置为等于日期[1],那么 TotalDays 没有理由为您在评论中的示例日期返回零。
关于C# 两个日期之间的天数问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2856545/