2017-05-18 5 views
2
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
野田時間との日付の違いは正しいですか?上記のため

あなたは私が野田からもらった違いを見ることができるように時間ライブラリ。
しかし、私は上記のリンクのためのhttps://www.easycalculation.com/date-day/age-calculator.php
結果のために異なる結果を得る:
1年、6ヶ月、そして1日

開始日:2015年7月28日
終了日:2月1日を2017

誰かがノーダタイムプラグインから得た結果が私が提供したリンクより正確であることを教えてもらえますか?

答えて

3

「より正確」には、違いの計算方法を指定する必要があります。ここには一つの正しい答えはありません。 documentedとして、Noda Timeは要素単位で動作します。あなたは2015年7月28日に1年、6ヶ月と4日間を追加するのであれば、あなたが得る:

  • 追加1年:2016年7月28日
  • 追加6ヶ月:4日の追加2017年1月28日
  • :第1回February 2017

サイトで使用されているコードは、available on the site itselfです。それはむしろより純粋なアプローチを取っているように見えます。

特に、2017年1月31日に生まれた人が2017年2月1日に生まれた年齢の人には、2日前であると言います。私はそれが正しいとは思わない...

+0

NodeTimeで使用されているロジックを説明し、結果を検証し、このプラグインを使用することを提案してくれてありがとう@jon Skeet。そのリンクはあまり正確ではないようですが、私はNodeTimeを使用して作業経験の差を計算します。 1つの最終的な質問:異なる日付差から複数の期間を最終期間に追加する方法はありますか? –

+0

@PratikGhagどういう意味なのか分かりませんが、あなたがしようとしていることの明確な例を使って新しい質問をすることをお勧めします。 –

+0

私は自分自身でこれを理解しようとします。私が立ち往生したら、私はそれに尋ねます。 :) –

1

2015年7月28日からに2015年8月1日は4日で、から2015年8月1日に2017年2月1日は、1つの半年間です。

正しい情報が表示されます。また、linkで確認することもできます。

あなたは 2015年7月または2015年7月30日29日と無効な入力が表示されます2015年7月28日からyour link日付に変更しようとすることができます。

+0

あなたの説明によると、私はNodaTimeがhttps://www.easycalculation.com/date-day/age-calculator.phpよりも正確であると結論づけています。 –

+0

@Pratik Ghagあなたは歓迎です –

関連する問題