我有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
是不是意味着以这种方式使用?
答案 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)
我假设startDate
和endDate
属于Nullable<DateTime>
类型。
您应首先检查HasValue
是否存在值。此代码应该适合您。
if(currentApplication.StartDate.HasValue && currentApplication.EndDate.HasValue)
{
currentApplication.NoOfDays = (currentApplication.EndDate.Value.Date - currentApplication.StartDate.Value.Date).Days;
}