カレンダー
#! /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=UTF-8\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
〔 実行する 〕