三浦です

----- Original Message -----
From: "Take_tk" <ggb03124 / nifty.ne.jp>
To: "ruby mailing list" <ruby-list / ruby-lang.org>
Sent: Saturday, March 16, 2002 11:27 PM
Subject: [ruby-list:34464] Re: カレンダー文字列を作るメソッド


>
>  だんだん面白くなってきた。
>
>  うむ・・。惜しい。
>
> puts calendar_table(2002,12)
>
> argument out of range
>   g:\apollo\apeed\1.RB:18:in `local'
>
>   (1..(Time.local( year,month + 1).yday - time.yday + wday)).each{|d|
>                           ↑ここ
>

うっ、バグ入りを出してしまって、すみませんです。お手数掛けました。
とりあえずの改訂版を作りました。

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

  #           1  2
  days = [0, 31, Time.local(year, 3).yday - Time.local(year, 2).yday,
  #        3   4   5   6   7   8   9  10  11  12
          31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

  (1..days[month] + 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, 2)
puts calendar_table(2002, 3)
puts calendar_table(2002, 12)
puts calendar_table(2000, 2)
puts calendar_table(2004, 2)