パスワードを忘れた? アカウント作成
676802 journal

bluedwarfの日記: Rubyでカレンダー 6

日記 by bluedwarf
カレンダーをHTMLとして出力するコードをRubyで書こうとしたのだが、Dateを使ったら意外にコンパクトなコードで、しかもそれなりにわかりやすいコードが書けたので晒してみる。
Dateを使わなければ、閏年の判定から曜日の判定までコーディングして、たくさんの条件分岐ができたけれども、これだとほとんど条件分岐しなくて済むので、見やすい見やすい。

-----
# 指定された月のカレンダーをHTMLのテーブルとして返す
def html_calendar(year,month)
    ret = "<table border>\n"
    ret << "<tr><td>日</td><td>月</td><td>火</td><td>水</td><td>木</td><td>金</td><td>土</td></tr>\n"
    ret << "<tr>"

    current = Date.new(year,month,1)

    unless current.wday == 0 then
        for x in 1..current.wday do
            ret << "<td></td>"
        end
    end

    while current.month == month do
        if current.wday == 0 then
            ret << "</tr>\n"
            ret << "<tr>"
        end
        ret << "<td>#{current.day}</td>"
        current = current.next
    end

    unless current.wday == 0 then
        for x in current.wday..6 do
            ret << "<td></td>"
        end
    end

    ret << "</tr>\n"
    ret << "<table>"
    return ret
end
-----

Rubyってコードを書く人のくせがはっきりとでるので、突っ込まれるのがとても恐いのですが。
# それでも突っ込み歓迎。
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

開いた括弧は必ず閉じる -- あるプログラマー

読み込み中...