-3

特定の 2 つの日付のペアの間の日数を計算しようとしていますが、最初のテストからわずか 1 週間離れた 2 番目のテストでアサートが失敗しています。

コードは以下です。

コードにバグはありますか? それとも、これは奇妙な Java/Groovy バグですか?

use(groovy.time.TimeCategory) {
    def duration = Date.parse("yyyy-MM-dd", "2013-03-10") - Date.parse("yyyy-MM-dd", "2012-12-30")
    assert duration.days == 70

    def duration2 = Date.parse("yyyy-MM-dd", "2013-03-17") - Date.parse("yyyy-MM-dd", "2012-12-30")
    assert duration2.days == 77
}
4

1 に答える 1

0

@Damien_The_Unbeliever は正しかった。ESTを使っていたので、3月頃に1時間早いEDTに切り替えます(2013-03-17 EDTをESTに換算すると1時間遅れます)。

これが正しいことを確認するためにテストを変更しました。2 番目と 3 番目のアサートはパスです。

use(groovy.time.TimeCategory) {
    def duration = Date.parse("yyyy-MM-dd", "2013-03-10") - Date.parse("yyyy-MM-dd", "2012-12-30")
    assert duration.days == 70

    def duration2 = Date.parse("yyyy-MM-dd", "2013-03-17") - Date.parse("yyyy-MM-dd", "2012-12-30")
    assert duration2.days == 76
    assert duration2.hours == 23
}
于 2013-03-18T17:01:50.590 に答える