Nodatime时间间隔总分钟数
本文关键字:分钟 时间 Nodatime | 更新日期: 2023-09-27 18:16:19
我经常在c#中使用nodeatime,它非常棒,但是在试图获取两个LocalDateTimes之间的总分钟数时被发现了。我的两次约会相隔一个多星期。
这没有提供一个有效的结果:(1)
long Mns = Period.Between(nowLdt,triggerLdt).Ticks.ToSeconds() / 60;
这确实提供了正确的结果:(2)
double Mns = Period.Between(nowLdt,triggerLdt).ToDuration().ToTimeSpan().TotalMinutes;
所以我的问题实际上是三个问题:
为什么nodeatime没有TotalMinutes函数?
为什么上面(1)不起作用?
是否有比(2)更简洁的方法?
只需使用Period.Between
静态方法,并指定您希望以输出表示的单位。
Period p = Period.Between(start, end, PeriodUnits.Minutes);
long totalMinutes = p.Minutes;
如果没有明确指定PeriodUnits
,则默认为PeriodUnits.DateAndTime
。这将返回一个Period
,其中填充了所有可能的日期和时间属性(除了周),从而使Minutes
属性只有小于一小时的分钟。
换句话说,使用Period.Between
而不指定单位就像在TimeSpan
上请求Minutes
,而指定PeriodUnits.Minutes
就像在TimeSpan上请求TotalMinutes
。无论如何,您都可以使用Period
的Minutes
属性—它只是控制Period
的构造方式。