Ruby で月末日付を取得する
$ irb irb(main):001:0> require 'date' => true irb(main):002:0> day = Date.new(2008, 2, -1) => #<Date: 4909051/2,0,2299161> irb(main):005:0> p day.to_s "2008-02-29" => nil irb(main):006:0> p day.strftime("%D") "02/29/08" => nil irb(main):007:0> p day.strftime("%d") "29" => nil irb(main):008:0>
応用
date.rb
require 'date' day = Date.new(2008, 2, -1) end_of_month = day.strftime('%d').to_i year_and_month = day.strftime('%Y%m') for today in 1..end_of_month do p sprintf('%s%02d', year_and_month, today) end
実行する。
$ ruby date.rb "20080201" "20080202" "20080203" "20080204" "20080205" "20080206" "20080207" "20080208" "20080209" "20080210" "20080211" "20080212" "20080213" "20080214" "20080215" "20080216" "20080217" "20080218" "20080219" "20080220" "20080221" "20080222" "20080223" "20080224" "20080225" "20080226" "20080227" "20080228" "20080229" $