From: Tadayoshi Funaba Date: 2010-01-28T22:33:47+09:00 Subject: [ruby-dev:40210] Re: [Bug:trunk] rubyspec: Date#valid_civil? should be able to handle negative months and days FAILED > まず確認ですが、valid_civil? が jd or nil を返すという仕様から > true or false を返すようになったのは 1.9 から (というか Date2 > から?) の仕様変更ですよね。 はい。 > その点を修正した上で、rubyspec が以下の挙動の変化を検出しました。 晦日からの数えかたの変更です。1.8 では以下のようになっていて、飛んだと ころにも日を割り当てられているかのように数えていました。 # October 1582 # S M Tu W Th F S # -31 -30 -29 -28 -17 -16 # -15 -14 -13 -12 -11 -10 -9 # -8 -7 -6 -5 -4 -3 -2 # -1 1.9 では、 # October 1582 # S M Tu W Th F S # -21 -20 -19 -18 -17 -16 # -15 -14 -13 -12 -11 -10 -9 # -8 -7 -6 -5 -4 -3 -2 # -1 のように本当に存在するものだけ数えるようにしています。どっちが正しいと いうわけではないのですが、このような例外的なところでの挙動を選択しなれ ばなりません。年の日のほうのあつかいと揃えるとともに、このほうが都合が よいのでそうしました。 したがって、1582年-3月-18日は、1.8 では存在するが、1.9 では存在しないと いうことになります。