我正在尝试获取两个 DateTime 对象之间的月数。
我正在使用NodaTime。我的两个日期时间值是:
这是我的代码:
// period in months between start and end date
LocalDateTime startDate = LocalDateTime.FromDateTime(request.Entity.StartDatetime.Value);
LocalDateTime endDate = LocalDateTime.FromDateTime(request.Entity.FinishDatetime.Value);
Period period = Period.Between(startDate, endDate, PeriodUnits.Months);
int numberOfMonths = period.Months;
我希望
numberOfMonths
是 12
,但相反,我得到 11
。
我哪里出错了?
不出所料,这段代码给出了 12 个月的期限:
LocalDateTime startDate = LocalDateTime.FromDateTime(new DateTime(2023, 1, 1));
LocalDateTime endDate = LocalDateTime.FromDateTime(new DateTime(2024, 1, 1));
Period period = Period.Between(startDate, endDate, PeriodUnits.Months);
int numberOfMonths = period.Months;
关键是12个月其实已经过去了
如果您查看的是
2023/12/31
那么它实际上是 2023/12/31 00:00
并且比 12 个月还短了一天。