2011年12月30日金曜日

Ruby で nヶ月前の日付を取得する。

●Excel の株価の一覧表をRubyを使って自動作成しようとすると、今日を起点としてnヵ月前の日付を知りたくなったりします。例えば2ヵ月前の日付は以下のようにして求められます。(#以降はコメント)


require 'date'

day = Date.today        # get today date(2011-12-30)

day = day <<  2         # 2 months ago


p day.month             # 2011
p day.day               # 10
p day.year              # 30


注意したい点としては、例えば2ヶ月前のさらに2ヶ月前は、4ヶ月前の日付と、同じにならないことがあるということです。


●もし、2ヶ月前ではなくて、2ヶ月後の日にちを知りたいときには以下のようにします。

day = day >>  2



●もし1日後の日付を知りたい場合には、以下のようにします。


day = day + 1

●もし1日前の日付を知りたい場合には、以下のようにします。


day = day - 1


0 件のコメント:

コメントを投稿