たけ(tk)です。

[ruby-list:34455] Re: カレンダー文字列を作るメソッド にて 
ABE Shigeru <shiger-a / nifty.com> さん 曰く:
》 エレガントではないと思いますけれども、自分の HP に載せている日記を自動生成させるコードを使って書いてみます。

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

def days_in_month(year,month)
  nextmonth = Time.at(
    Time.local(year, month).tv_sec + 31*24*3600 )
  daycount  = Time.at(
    Time.local(nextmonth.year, nextmonth.mon).tv_sec - 1 ).mday
end

def calendar_table( year,month )
  days = days_in_month( year,month )
  time = Time.local( year,month )
  wday = time.wday
  s = " "*4*wday
  (1..days).each{|d|
      s << "%4d" % d
      s << "\n" if wday == 6 
      wday = (wday+1)%7
  }
  return ["%12d 年 %d 月" % [year,month],
          "  日  月  火  水  木  金  土"]+
          s.split("\n")  
end

puts calendar_table(2002,3)

》 標準でこれらのデータを求めるメソッドがあれば便利なんですけど。(^^;

 そう思います。

Take_tk = KUMAGAI Hidetake
たけ(tk)=熊谷秀武