#!/usr/local/bin/perl require 'timelocal.pl'; @month_names = ('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', December'); @wday_names = ('Su', 'Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa'); @color_names = ('red', 'green', 'blue', 'yellow'); $user = $ENV{'REMOTE_USER'}; @ltime = localtime; $year = $ltime[5] + 1900; $month = $ltime[4] + 1; if ($ENV{'QUERY_STRING'} ne '') { local(@pairs) = split (/&/, $ENV{'QUERY_STRING'}); local ($i); for ($i = 0; $i <= $#pairs; $i++) { local(@entry) = split (/=/, $pairs[$i]); if ($entry[0] eq 'month') { $month = $entry[1]; } elsif ($entry[0] eq 'year') { $year = $entry[1]; } } } print <<__EOF__; Content-type: text/html
__EOF__ if ($month == 1) { $prev = sprintf ("month=12&year=%d", $year - 1); &print_cal (12, $year - 1); } else { $prev = sprintf ("month=%d&year=%d", $month - 1, $year); &print_cal ($month - 1, $year); } printf (" | \n"); &print_cal ($month, $year); printf (" | \n"); if ($month == 12) { $next = sprintf ("month=1&year=%d", $year + 1); &print_cal (1, $year + 1); } else { $next = sprintf ("month=%d&year=%d", $month + 1, $year); &print_cal ($month + 1, $year); } print <<__EOF__; |
__EOF__ sub print_cal { local($month) = $_[0]; local($year) = $_[1]; local($time) = timelocal (0, 0, 0, 1, $month - 1, $year - 1900); local(@ltime) = localtime ($time); local($wday) = $ltime[6]; local($ndays,$day); local(@appointments) = &parse_appointments ($month, $year); if (($month % 2 == 0) == ($month >= 8)) { $ndays = 31; } elsif ($month != 2) { $ndays = 30; } elsif ($year % 4 == 0) { $ndays = 29; } else { $ndays = 28; } print <<__EOF__;
$month_names[$month - 1] $year | ||||||
$wday_names[0] | __EOF__ for ($day = 1; $day < 6; $day++) { printf ("%s | ", $wday_names[$day]); } print <<__EOF__;|||||
$wday_names[6] | ||||||
"); } for ($day = 1; $day <= $ndays; $day++, $wday++) { if ($wday == 7) { $wday = 0; printf (" | ||||||
", $appointments[$day - 1]); printf ("%d | ",
"day-cal.pl", $year, $month, $day, $user, $day);
}
printf ("