ふなばです。

>>> Fri, 12 Mar 1999 00:00:59 +0900 の刻に 「ikarashi」、すなわち
>>> ikarashi / itlb.te.noda.sut.ac.jp(IKARASHI Akira) 氏曰く

ikarashi> Tadayoshi Funaba writes:
>いや、Time.addMonth(Time.now, -24) とかできるでしょう :-)

ikarashi> う、負数を弾くようにチェックを入れれば...。

とりあえず、m %= 12 のところを直せば、一応、スジの通った結果はでそうですが。

># Java でも add だけだったような。

ikarashi> 負数も受けとるんですか?

受けとりますね。そういう仕様みたいです。

>とりあえず、気がついたのは、時刻が地方時とは限らないことですね。

ikarashi> これはわかっていたんですが、Timeインタンスがどちらの状態であるのか
ikarashi> 判別する方法がわからなかったので、決め打ちでした。

そうなんですよね。

Time にとって一般的な時刻表現は便宜的なもので、それに沿った解釈や演算
については、特別に配慮されているとはいえないですね。
たとえば、Marshal.dump すればタイムゾーンは関係なくなりますし。

なので、そういうことを利用者が把握してやっているぶんにはよいのですが、
そうでないと、意味不明になる可能性もあり、addMonth のようなものは微妙
なものがあると思います。

ふなば ただよし