C# 两个日期之间的天数问题

标签 c# date

下面的代码有一个小问题,无论天数相隔多远,“天数”变量似乎始终为 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/

相关文章:

r - Sys.Date() 显示错误的日期

c++ - 找到日期之间的差异并将其分组在某个类别下

c# - 找出日期时间在未来多少天

c# - 在不同存储库中共享类似的 linq to 实体表达逻辑的建议做法是什么

c# - 以编程方式重置 VisualStudio 快捷方式

sql - 填充 SQL 查询结果集中缺失的(时间段)行

c# - 重命名数据库并在显示数据库已存在错误中以旧名称创建数据库

c# - 解析 Json 返回字符串还是字符串数组?

javascript - Safari 中的日期解析错误

c++ - 将字符串格式化为日期