#!/usr/bin/ruby require 'date' require 'optparse' year = Date.today.year month = Date.today.month opt = OptionParser.new opt.on('-m int') { |v| month = v.to_i } opt.on('-y int') { |v| year = v.to_i } opt.parse!(ARGV) startwday = Date.new(year, month, 1).wday # その月の最初の曜日 enddate = Date.new(year, month, -1).day # その月の最後の曜日 week = %w[日 月 火 水 木 金 土] puts month.to_s.rjust(8) + '月 ' + year.to_s puts week.join(' ') print ' ' * startwday days = startwday (1..enddate).each do |day| print day.to_s.rjust(2) + ' ' days += 1 print "\n" if days % 7 == 0 end