Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

てぃーびーの Ruby 練習帳 | 特定の月の特定の曜日の日付配列を取得し、特定のフォーマットで出力する

f:id:tbpg:20150504085308j:plain

特定の月の特定の曜日の日付配列を取得します

仕様

7月の全ての金曜日をYYYY/MM/DD (曜日)のスタイルで出力する

stepを利用+固定日付を指定するケース

プログラム

require 'date'
Date.new(2015,7,3).step(Date.new(2015,7,31), 7) { |e|puts e.strftime("%Y/%m/%d (金)") }

出力

2015/07/03 (金)
2015/07/10 (金)
2015/07/17 (金)
2015/07/24 (金)
2015/07/31 (金)

Rangeを利用+基準日を元に固定値を利用しないケース

※固定値を利用しないといいつつ曜日は固定値なのはスルー推奨

プログラム

require 'date'
base = Date.new(2015,7)
print (base...base.next_month).select{ |e|e.friday? }
                                           .map{ |e|e.strftime('%Y/%m/%d (金)') }
                                           .join("\n")

出力

2015/07/03 (金)
2015/07/10 (金)
2015/07/17 (金)
2015/07/24 (金)
2015/07/31 (金)

応用問題

※模範解答の公開等はしません

応用問題1

2016年2月のすべての月曜日をYYYY/MM/DD (曜日)のスタイルで出力してください。

応用問題2

2016年2月のすべての火・水曜日をYYYY/MM/DD (曜日)のスタイルで出力してください。

外部資料

親記事