たけ(tk)です

[ruby-list:41354] Re: Date へのメソッド追加要望 にて
URABE Shyouhei <s-urabe / par.odn.ne.jp> さん曰く:

> >たとえば、「来月の25日」の日付が欲しい場合は
> >
> >raigetu_25niti = Date.today.inc_month(1).set_day(25)
> >
> >と書けるようなメソッドが欲しいです。
> >  
> >
> d = Date.today >> 1
> raigetsu_25niti = Date.new(d.year, d.month, 25)
> 
> とかとくらべてどのへんが便利かを示していただくと説得力が増すと思います。

数値用の演算子を転用するのは(あってはいけないというわけではないが)、
「あんまりじゃ」、という感じがする。

「Date.today >> 1」で直感的に「月の増加」であると理解するのは困難。
また、「Time.now >> 1」は使えない。

「Date.today + 1」は1日後を返すが「Time.now + 1」は一秒後を返す。
Timeクラスでもinc_month(n)やinc_day(n)を作っておけば日付の処理がクラスが
違っても統一的に行えるようになる。

日付クラスなので、年月日を分けて処理できるメソッドがあってもよい。
日付クラスなので、year、month、day などの名前を含むメソッドがあってもよ
い。

実務的(報告書の作成や、期限の判定など)では「xヶ月後のxx日しめ」とい
うような日付は良くでてくる。従って、短くて、分かりやすいほうがよい。

次のように書いた方が分かりやすい。

raigetu_25niti = Date.today.inc_month(1).set_day(25)
#                今日から見て 1ヶ月後の  25日

Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武