Rubyでカレンダーを表示するには、Dateモジュールの機能をいろいろ使って実現する。Dateインスタンスのwdayで曜日(0=日曜、6=土曜)を取得、またDate.new(year, month, -1)
でその月の最後の日が取得できることを利用する。
require 'date' |
Codepadで動作を見てみる:http://codepad.org/r7uuRL37
(wday + last_day + 6) / 7
でその月に何週あるかを割り出して、初めの週と終わりの週に特殊処理をして、それらを配列として返すので、あとはなんなりと。
月曜始まりにしたい場合とかを考慮して、何曜日を先頭にするかを引数として渡せるようにした。