我需要使用NodaTime计算两个日期之间的天数,并在时区中进行计算。
结束时间是基于当天结束时暗示的午夜时间的日期。这个日期是在一个时区。
开始时间是当前时间,但我将其传递给函数,以便该函数可测试。
我尝试使用Period,这似乎是明显的答案,但是Period在一端太过细化(当我们在结束日时)并且当我们超过1个月之后不够精细。
因此,如果现在是美国/多伦多的7月9日,下午5:45,结束时间是9月1日00:00:00,那么我希望能够计算54天。 (假设我正确计算了我日历上的天数。:))
我想我自己必须处理子日问题,但当我不得不弄清楚如何处理一个多月的问题时,我感到很惊讶。
有一种明显的方法可以从NodaTime获得两次之间的天数吗?我使用.Net的DateTime和TimezoneInfo类将它归结为三行代码,但我想转移到NodaTime,原因是网站上指定的所有原因。
由于
答案 0 :(得分:9)
我应该在发布之前更仔细地阅读文档的算术部分。
您可以使用第3个参数指定数学结果所在的单位。这就是我需要的:
Period timeLeft = Period.Between(nowInTz.LocalDateTime, endDate, PeriodUnits.Days);
这是来自文档: http://nodatime.org/unstable/userguide/arithmetic.html
希望将来有人帮助其他人。