#! /usr/bin/perl # # scalen.cgi # トップページ用SSIカレンダー # # 1.0 : 1/29/07 : Initial revision. # # http://www.hidekik.com # # Copyright(c) 2007, Hideki Kanayama All Rights Reserved use CGI::Carp qw(fatalsToBrowser); use Time::Local; # Use localtime? my $localtime_en = 0; # Offset from GMT if $localtime_en = 0 my $offset = 9; my $now = time; my ($reqsec,$reqmin,$reqhour,$reqday,$reqmon,$reqyear,$reqwday,$reqyday,$reqisdst) = $localtime_en ? localtime($now) : gmtime($now); my @weekname = qw(Sunday Monday Tuesday Wednesday Thursday Friday Saturday); my @monname = qw(January February March April May June July August September October November December); my $starttime = $localtime_en ? timelocal(0,0,0,1,$reqmon,$reqyear) : timegm(0,0,0,1,$reqmon,$reqyear); my ($ssec,$smin,$shour,$sday,$smon,$syear,$swday,$syday,$sisdst) = $localtime_en ? localtime($starttime) : gmtime($starttime); my ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst); print "Content-Type: text/html\n\n"; my $tmp = $reqyear+1900; my $border; my $align; $border=0; $align = "center"; print "\n"; print "\n"; foreach my $week (-1 .. 5) { my $sunday = $starttime - $swday * 86400 + $week * 7 * 86400; my ($sunsec,$sunmin,$sunhour,$sunmday,$sunmon,$sunyear,$sunwday,$sunyday,$sunisdst) = $localtime_en ? localtime($sunday) : gmtime($sunday); last if ($week == 5 and $sunmon != $reqmon and $week >= 0); print "\n"; foreach my $day (0 .. 6){ if ($week == -1){ print "\n"; } else { print "\n"; } } print "\n"; } print "
\n"; print "
$monname[$smon], $tmp
\n"; print "
"; if ($day == 0){ print ""; } elsif ($day == 6) { print ""; } print substr($weekname[$day],0,1); if ($day == 0){ print ""; } elsif ($day == 6) { print ""; } print ""; if ($week == 0 and $day >= $swday or $week > 0){ my $today = $starttime + ($day - $swday + $week * 7) * 86400; ($sec,$min,$hour,$mday,$mon,$year,$wday,$yday,$isdst) = $localtime_en ? localtime($today) : gmtime($today); if ($mon == $reqmon){ if ($wday == 0){ print ""; } elsif ($wday == 6) { print ""; } print "$mday"; if ($wday == 0){ print ""; } elsif ($wday == 6) { print ""; } } else { print " "; } } else { print " "; } print "
";