1日後や1ヶ月前の日付を得る
require 'date' def time_to_date( t) DateTime.new( t.year, t.mon, t.day, t.hour, t.min, t.sec) end def date_to_time( d) Time.mktime( d.year, d.mon, d.day, d.hour, d.min, d.sec) end t1 = Time.now # 基準日 d1 = time_to_date( t1) p (d1 + 1).strftime("%Y/%m/%d %H:%M:%S") # 1日後 p (d1 << 1).strftime("%Y/%m/%d %H:%M:%S") # 1ヶ月前 p date_to_time(d1 - 1).strftime("%Y/%m/%d %H:%M:%S")
Date#todayや DateTime#nowの中身を見ても直接Timeから変換していて,変換するためのメソッドが無いようなので適当に定義してみた.
require 'date' week =%w[sun mon tue wed thu fri sat] d = Date.today # 今日を基準にする ds = Date.new( d.year, d.mon+1, 1) # 来月の朔日 de = (ds >> 1) - 1 # 来月の晦日 (ds..de).each {|d| puts sprintf("%02d%02d(%s)", d.mon,d.day, week[d.wday]) puts "" if d.wday==0 # 日曜毎に改行 }