【发布时间】:2018-01-06 04:20:30
【问题描述】:
我正在尝试使用 NodaTime 来计算两个日期之间的小时数,但我得到了这个异常:
"Units包含时间单位:小时。参数名称:单位"
此代码在数年、数月和数天内都能正常工作。
public ElapsedTimeNodaTime(DateTime StartDate, DateTime EndDate)
{
var birthday = new LocalDate(StartDate.Year, StartDate.Month, Date.Day);
var today = new LocalDate(EndDate.Year, EndDate.Month, EndDate.Day);
Years = Period.Between(birthday, today, PeriodUnits.Years).Years;
Months = Period.Between(birthday, today, PeriodUnits.Months).Months;
Days = Period.Between(birthday, today, PeriodUnits.Days).Days;
Hours = Period.Between(birthday, today, PeriodUnits.Hours).Hours;
}
【问题讨论】:
-
旁注:我建议遵循 .NET 的参数命名约定。您也可以使用
var birthday = LocalDateTime.FromDateTime(StartDate).Date;或(在 2.0 中使用扩展方法)var birthday = StartDate.ToLocalDateTime().Date;