require 'date'
class CalMon
def initialize(year, mon)
@year = year
@mon = mon
end
def getFirstDay
return Date.new(@year, @mon, 1)
end
def getLastDay
return (Date.new(@year, @mon, 1) >> 1) - 1
end
def getWeeks
a = Array::new()
d = getFirstDay
begin
a << getWeekRange(d)
d += 7
end while d.mon == @mon
return a
end
def getWeekRange(d)
d0 = d - d.wday
d6 = d0 + 6
return [d0, d6]
end
end
t = Date.today
print " ", t.strftime("%B %Y"), "\n"
print " S M Tu W Th F S\n"
CalMon.new(t.year, t.mon).getWeeks.each do |w|
d = w[0]
7.times {|i|
if(d.mon == t.mon)
print (d.day < 10) ? " " : "", "#{d.day} "
else
print " "
end
d += 1
}
print "\n"
end