MVC获取日历开始日期和结束日期之间的天数

时间:2015-12-14 09:47:01

标签: asp.net-mvc date calendar

我有2个日历,一个用于用户选择开始日期,另一个用于结束日期。我想得到两个日期之间差异的值来显示天数。

            decimal period = Convert.ToDecimal((currentApplication.StartDate.Value - currentApplication.EndDate.Value).TotalDays);
            currentApplication.NoOfDays = period;

确实有效,但天数不准确。

  

22/12至22/12显示为1.00

     

22/12至23/12显示为-1.00

     

22/12至24/12显示为-1.00

我认为使用.TotalDays是正确的,但价值并不准确。我是否错误地使用了它,或者.TotalDays是不是意味着以这种方式使用?

3 个答案:

答案 0 :(得分:0)

尝试;

decimal period = (currentApplication.startDate.Date - currentApplication.endDate.Date).TotalDays

答案 1 :(得分:0)

如果使用[https://poi.apache.org/spreadsheet/limitations.html][1] 时天数不准确,那么您可以使用.TotalDays来获取天数。

Timespan

注意:请确保TimeSpan tSpan = (currentApplication.EndDate.Value).Subtract(currentApplication.StartDate.Value); currentApplication.NoOfDays = tSpan.Days; currentApplication.StartDate.Value 日期时间

答案 2 :(得分:0)

我假设startDateendDate属于Nullable<DateTime>类型。 您应首先检查HasValue是否存在值。此代码应该适合您。

if(currentApplication.StartDate.HasValue && currentApplication.EndDate.HasValue)
{
            currentApplication.NoOfDays = (currentApplication.EndDate.Value.Date - currentApplication.StartDate.Value.Date).Days;
}