カレンダー
#! /usr/local/bin/ruby today = Time.now startday = Time.local(today.year, today.month, 1) # 今月1日の曜日 days = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] days[1] += 1 if today.month == 2 and # うるう年 (today.year % 4 == 0 and today.year % 100 != 0 or today.year % 400 == 0) endday = days[today.month - 1] # 今月最後の日 print "Content-type: text/html; charset=Shift_JIS\n\n" print <<END <html> <head> <title>#{today.year}年#{today.month}月カレンダー</title> </head> <body> <table border="2" bordercolor="#000099" cellspacing="0" cellpadding="5"> <tr> <th colspan="7"> #{today.year}<span style="font-size:xx-small">年</span>#{today.month}<span style="font-size:xx-small">月</span> </th> </tr> <tr> <td align="center" style="font-size:xx-small;color:red">日</td> <td align="center" style="font-size:xx-small">月</td> <td align="center" style="font-size:xx-small">火</td> <td align="center" style="font-size:xx-small">水</td> <td align="center" style="font-size:xx-small">木</td> <td align="center" style="font-size:xx-small">金</td> <td align="center" style="font-size:xx-small;color:blue">土</font></td> </tr> END count = 0 i = 0 while i < startday.wday # 1日までの空欄 print "<tr>" if count % 7 == 0 print "<td> </td>" count += 1 i += 1 end i = 1 while i <= endday # 日付を書き込む print "<tr>" if count % 7 == 0 print "<td align=\"right\"" print " bgcolor=\"#ddffdd\"" if i == today.day print " style=\"color:red\"" if count % 7 == 0 print " style=\"color:blue\"" if count % 7 == 6 print ">" print i print "</td>" count += 1 print "</tr>\n" if count % 7 == 0 i += 1 end while count % 7 != 0 # 最後の日からの空欄 print "<td> </td>" count += 1 print "</tr>\n" if count % 7 == 0 end print <<END </table> </body> </html> END exit
〔 実行する 〕