■プログラム (sample8.cgi)print "<center>"; &calendar(2003,3); print "</center>"; ### sub calendar { ($year,$mon) = @_; @week = ('日','月','火','水','木','金','土'); @mdays = (31,28,31,30,31,30,31,31,30,31,30,31); $mdays = $mdays[$mon - 1]; if ($mon == 2 && $year % 4 == 0) {$mdays = 29;} print "$year年$mon月\n"; print "<table border=1 cellspacing=0 cellpadding=3><tr>"; foreach (0 .. 6) {print "<td>$week[$_]</td>";} print "</tr>\n";
&date($year,$mon,1); $w = 0; $k = 1; for ($i=0; $i<42; $i++) { if (!$w) {print "<tr align=center>";} if ($wday <= $i && $k <= $mdays) {print "<td>$k</td>"; $k++;} else {print "<td> </td>";} $w++; if ($w == 7) {print "</tr>"; if ($mdays < $k) {last;} $w = 0;} } print "</table>\n"; } ### sub date { ($y,$m,$d) = @_; if ($m < 3) {$y--; $m += 12;} $wday = ($y+int($y/4)-int($y/100)+int($y/400)+int((13*$m+8)/5)+$d)%7; }
|
|