当我计算 2018年7月28日和 2018年8月1日之间的 持续时间 时,结果是两天。 正确答案是四天。我的错是什么?
我的代码是:
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 。
答案 0 :(得分:3)
尝试这样
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;
}
答案 1 :(得分:0)
感谢大家,我的问题已通过以下方法解决。
private static double DateDurationCalculate(DateTime startTime, DateTime endTime)
{
var usCulture = "en-US";
startTime = DateTime.Parse(startTime.ToString("MM/dd/yyyy"), new CultureInfo(usCulture, true));
endTime = DateTime.Parse(endTime.ToString("MM/dd/yyyy"), new CultureInfo(usCulture, true));
TimeSpan span = endTime.Date.Subtract(startTime);
return span.TotalDays;
}