GregorianCalendar を使用しようとして、特定の日付からの日数を計算しているときに特異点に行き詰まりました。scala インタープリターで、次のように入力しました。
scala>import java.util.GregorianCalendar
scala>import java.util.Calendar
scala>val dateToday = new GregorianCalendar(2012,Calendar.MAY,22).getTimeInMillis()
dateToday: Long = 1337637600000
scala>val days1 = (dateToday - (new GregorianCalendar(1976,Calendar.MARCH,28).getTimeInMillis())) / (1000*3600*24)
days1: Long = 13203
scala>val days2 = (dateToday - (new GregorianCalendar(1976,Calendar.MARCH,29).getTimeInMillis())) / (1000*3600*24)
days2: Long = 13203
1976 年が閏年であるという事実が重要かどうかはわかりませんが、days1 と days2 は 1 で区切られているはずです。これは、1970 年以来、この特異点が発生した唯一の瞬間です。
何が起こっているのか知りたくて、前述の 2 つの日付の差を計算すると、正確に 23 時間の差しかありません。その日に何が起こったのですか?ウィキペディアは明らかにそれについて何も述べていません。
さらに重要なのは、特定の日付からの実際の日数を計算する方法です。