首页 > 解决方案 > 当我计算 28/07/2018 和 01/08/2018 之间的持续时间时,结果是两天。正确答案是四天。我的错误是什么?

问题描述

当我计算28/07/201801/08/2018之间的持续时间时,结果是两天。正确答案是四天。我的错误是什么?

我的代码是:

  private static double DateDurationCalculate(DateTime startTime, DateTime endTime)
        {
            TimeSpan span = endTime.Subtract(startTime);
            return span.TotalDays;
        }

startTime 是2018/07/28 11:54, endTime 是2018/08/01 09:28

在此处输入图像描述

标签: c#duration

解决方案


像这样试试

DateTime startTime = DateTime.Parse("2018/07/28 11:54");
DateTime endTime = DateTime.Parse("2018/08/01 09:28");    


private static double DateDurationCalculate(DateTime startTime, DateTime endTime)
{
    startTime = new DateTime(startTime.Year, startTime.Month, startTime.Day, startTime.Hour, startTime.Minute, 0);
    endTime = new DateTime(endTime.Year, endTime.Month, endTime.Day, endTime.Hour, endTime.Minute, 0);
    TimeSpan span = endTime.Date.Subtract(startTime.Date);
    return span.TotalDays;
}

推荐阅读