与Noda Time的日期差异是否正确?

时间:2017-05-18 05:24:25

标签: c# asp.net datetime nodatime localtime

DateTime dtStart = new DateTime(2015,7,28);
LocalDate ldtStart = LocalDate.FromDateTime(dtStart);

DateTime dtEnd = new DateTime(2017, 2, 1);
LocalDate ldtEnd = LocalDate.FromDateTime(dtEnd);

Period period = Period.Between(ldtStart, ldtEnd, PeriodUnits.YearMonthDay);

以上结果:
period.Years - > 1
period.Months - > 6
period.Days - > 4个

你可以看到我从Noda Time图书馆得到的不同。
但是我得到https://www.easycalculation.com/date-day/age-calculator.php的不同结果 以上链接的结果:
1年,6个月和1天

开课日期:2015年7月28日
结束日期:2017年2月1日

有人可以告诉我,我从noda time插件获得的结果比我提供的链接更准确吗?

2 个答案:

答案 0 :(得分:4)

“更准确”需要说明您希望如何计算差异。这里没有一个正确的答案。作为documented,Noda Time在元素方面起作用。因此,如果您将2015年7月28日的1年,6个月和4天添加到:

  • 添加1年:2016年7月28日
  • 新增6个月:2017年1月28日
  • 添加4天:2017年2月1日

该网站使用的代码是available on the site itself。看起来这是采取一种更为天真的方法。

特别是,如果你问2017年1月31日出生的人是在2017年2月1日,他们会说他们已经有2天了。我不认为这是对的......

答案 1 :(得分:1)

2015年7月28日 2015年8月1日是4天,从 2015年8月1日 2017年2月1日正好是一年半。

NodaTime向您显示正确的信息。您也可以查看此link

您可以尝试将your link日期从 2015年7月28日更改为 2015年7月29日 2015年7月30日和您会看到无效的输入。