C# 与野田时间的日期差是否正确?

C# 与野田时间的日期差是否正确?,c#,asp.net,datetime,nodatime,localtime,C#,Asp.net,Datetime,Nodatime,Localtime,以上结果: 期间.年->1 期间月份->6个 期间天数->4天 正如你所看到的,我从野田佳彦时间图书馆得到的不同。 但是对于 以上链接的结果: 1年6个月1天 开始日期:2015年7月28日 结束日期:2017年2月1日 有人能告诉我,我从野田佳彦时间插件得到的结果比我提供的链接更准确吗?从2015年7月28日到2015年8月1日是4天,从2015年8月1日到2017年2月1日正好是一年半 NodaTime向您显示正确的信息。你也可以看看这个 您可以尝试将日期从2015年7月28日更改为2015

以上结果:
期间.年->1
期间月份->6个
期间天数->4天

正如你所看到的,我从野田佳彦时间图书馆得到的不同。
但是对于
以上链接的结果:
1年6个月1天

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

有人能告诉我,我从野田佳彦时间插件得到的结果比我提供的链接更准确吗?

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

NodaTime向您显示正确的信息。你也可以看看这个

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

“更准确”需要说明如何计算差异。这里没有唯一正确的答案。正如野田佳彦所言,时间在元素方面起作用。因此,如果您在2015年7月28日之前再加上1年6个月零4天,您将得到:

  • 增加1年:2016年7月28日
  • 新增6个月:2017年1月28日
  • 新增4天:2017年2月1日
网站使用的代码为。看起来这采取了一种更为幼稚的方式


特别是,如果你问2017年1月31日出生的人2017年2月1日的年龄,他们会说他们是-2天大。我不认为这是对的…

谢谢@Max Mokrousov,根据你的解释,我认为NodaTime比NodaTime更准确。感谢@jon Skeet解释NodaTime使用的逻辑,验证结果,并建议使用此插件。是的,这个链接似乎不太准确,我想我会用NodeTime来计算工作经验之间的差异。最后一个问题:有没有办法将不同日期的多个时段添加到最后一个时段?@PratikGhag我不知道你的意思,但我建议你提出一个新问题,并给出一个明确的例子,说明你正在尝试做什么。我将试着自己解决这个问题。如果我卡住了,我会问的。:)知道了。在这里,您可以找到多个句点对象的添加。搜索“添加句点”。
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);