如何获得nodatime中两个日期之间的天数

时间:2016-07-09 21:47:31

标签: nodatime

我需要使用NodaTime计算两个日期之间的天数,并在时区中进行计算。

结束时间是基于当天结束时暗示的午夜时间的日期。这个日期是在一个时区。

开始时间是当前时间,但我将其传递给函数,以便该函数可测试。

我尝试使用Period,这似乎是明显的答案,但是Period在一端太过细化(当我们在结束日时)并且当我们超过1个月之后不够精细。

因此,如果现在是美国/多伦多的7月9日,下午5:45,结束时间是9月1日00:00:00,那么我希望能够计算54天。 (假设我正确计算了我日历上的天数。:))

我想我自己必须处理子日问题,但当我不得不弄清楚如何处理一个多月的问题时,我感到很惊讶。

有一种明显的方法可以从NodaTime获得两次之间的天数吗?我使用.Net的DateTime和TimezoneInfo类将它归结为三行代码,但我想转移到NodaTime,原因是网站上指定的所有原因。

由于

1 个答案:

答案 0 :(得分:9)

我应该在发布之前更仔细地阅读文档的算术部分。

您可以使用第3个参数指定数学结果所在的单位。这就是我需要的:

Period timeLeft = Period.Between(nowInTz.LocalDateTime, endDate, PeriodUnits.Days);

这是来自文档: http://nodatime.org/unstable/userguide/arithmetic.html

希望将来有人帮助其他人。