三浦と申します

たけさん のコードをもとに、短くしてみました。
あんまりオリジナリティが無いのが恐縮ですが、私もエントリさせて下さい。

def calendar_table( year,month )
  time = Time.local( year,month )
  wday = time.wday
  s = "%12d 年 %d 月\n  日  月  火  水  木  金  土\n" % [year, month]

  (1..(Time.local( year,month + 1).yday - time.yday + wday)).each{|d|
      s << "%4s" % (d <= wday ? "    ": (d - wday).to_s)
      s << "\n" if d % 7 == 0
  }
  return s.split("\n")
end

puts calendar_table(2002,3)