ふなばです。

>>> Wed, 10 Mar 1999 17:32:46 +0900 の刻に 「wakou」、すなわち
>>> wakou / fsinet.or.jp(Wakou Aoyama) 氏曰く

wakou> dev の方の each(sunday) で思い出したのですが、Time に対しての分や時、
wakou> 日、月、年の加算等の簡単な書き方というのはどのようになるでしょうか?

僕は答えをしらないんですが、気がついたところだけ。

wakou> 例えば1月後はこんな感じでしょうか。

一ヶ月って判らないんですよね。

wakou> t = Time.now.to_a
wakou> t.to_a[4] += 1
wakou> p Time.mktime(*t)

これだと、1月31の一ヶ月後は2月31日ということになりますね。実際には3月3
日とかになるでしょうけど。

wakou> ちょっとわかりにくいですよね。

wakou> t = Time.now
wakou> p Time.mktime(t.year, t.month + 1, t.day, t.hour, t.min, t.sec)

wakou> これはわかりやすいですが、書くのが面倒です。

wakou> 有効期限等を指定する場合に +1M とか +1y という感じの指定をしたい場合、
wakou> 何か良い手はないものかと思いまして。

Java の Calendar にはそういうのありますね。

  date.add(Calendar.MONTH, 10);

殆ど Java  をつかわないんで、よくしらないんですけど、1ヶ月足して、もう
一度引いても同じ日になるとは限らないというものですね。

-----
wakou> (1.3.1 付属の cgi-lib.rb に cookie を扱う機能が追加されましたが、有効
wakou> 期限の指定は Time オブジェクトまかせになっています。)

有効期限だったら、日数で勘定するってのが無難でしょうか。そういうの多い
ですよね。日付だけ考えるなら date か date2 をつかうのもラクです。

# Marshal つかってると、date2 はダメなんだけど。
# そうそう修正版アップロードせねば。

ふなば ただよし