我的下面的代码有一个小问题,无论天数相隔多远,“ days”变量似乎总是为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);


假设您未将date [0]设置为等于date [1],则没有理由说TotalDays将为您的注释中的示例日期返回零。

10-04 22:29
查看更多