わたなべです。

Take_tk <ggb03124 / nifty.ne.jp> writes:

: ありがとうございます。day_in_month でいただきました。だいぶすっきりし
:たけれど、まだまだだなぁ・・。each の部分が collect で取れる方法はないも
:のか・・。今話題の inject はこういう用途にはどうなんでしょうか?。

違うアプローチを。"\n"で区切って後でsplitするのならscanで十分。

def calendar_table( year,month )
  days = days_in_month( year,month )
  time = Time.local( year,month )
  wday = time.wday

  s = "    "*wday + "%4d"*days % (1..days).to_a
  return ["%12d 年 %d 月" % [year,month],
          "  日  月  火  水  木  金  土"]+
          s.scan(/.{1,28}/)
end

-- 
わたなべひろふみ