サンプルコード
1月1日から12月31日までの Date オブジェクトを生成して、年月日と曜日を出力する。
require 'date'
def print_dates(year)
dates = (Date.new(year, 1, 1)...Date.new(year + 1, 1, 1)).to_a
puts "The year #{year} has #{dates.size} dates."
dates.each do |d|
puts d.strftime('%Y-%m-%d %a')
end
end
print_dates(2000)
print_dates(2001)
以下に出力結果の一部を記す。
2000年は閏年なので366日。2月29日が存在する。
The year 2000 has 366 dates.
2000-01-01 Sat
2000-01-02 Sun
2000-01-03 Mon
2000-01-04 Tue
(略)
2000-02-28 Mon
2000-02-29 Tue
2000-03-01 Wed
2001年は閏年ではないので365日。2月29日は存在しない。
The year 2001 has 365 dates.
2001-01-01 Mon
2001-01-02 Tue
2001-01-03 Wed
2001-01-04 Thu
(略)
2001-02-28 Wed
2001-03-01 Thu
参考資料
- class Date (Ruby 2.4.0) https://docs.ruby-lang.org/ja/latest/class/Date.html