= 13) {
$month = 1;
$year += 1;
} elseif ($month <= 0) {
$month = 12;
$year -= 1;
}
}
// Return vars in an array
return array("today" => $today,
"month" => $month,
"year" => $year,
"cmd" => $cmd);
} // End setvars()
// Do the document header
function docheader($month,$year) {
// Set script to return to (form action)
$this_script = $_SERVER['PHP_SELF'];
$month_text = date("F",strtotime($month."/1/".$year));
// If content header has not been sent,
// send it
if (!headers_sent()) {
header('Content-type: text/html');
}
// Print the document header (up to first date row)
print <<
Calendar - $Month $Year
HTML;
} // End docfooter()
// Print an empty day (cell)
function emptyday() {
print <<
HTML;
} // End emptyday()
// Print a day cell
function day($today,$month,$day,$year) {
$curday = $month."/".$day."/".$year;
if ($curday == $today) {
$font = " style=\"color: red;\"";
} else {
$font = "";
}
print <<< HTML
$day |
HTML;
} // End day()
// Open or close a row
function weekrow($cmd) {
switch ($cmd) {
case "open":
print "\n";
break;
case "close":
print "
\n";
break;
}
} // End weekrow()
// Main program body
function main() {
// Set the date vars by default, POST, or GET
$vars = setvars();
$today = $vars['today'];
$month = $vars['month'];
$year = $vars['year'];
$cmd = $vars['cmd'];
// Do the header and open first row
docheader($month,$year);
weekrow("open");
// Set up first weekday and 1st day (m/1/y)
$first_weekday = date("w",strtotime($month."/1/".$year)) + 1;
$day = 1;
// Print empty days up to the first weekday of month
for ($weekday = 1; $weekday < $first_weekday; $weekday++) {
emptyday();
}
// Do rest of month while we have a valid date
while (checkdate($month,$day,$year)) {
// If SUN, open the row
if ($weekday == 1) {
weekrow("open");
}
// Print day and increment
day($today,$month,$day,$year);
$weekday++;
$day++;
// If SAT, close row reset weekday
if ($weekday > 7) {
weekrow("close");
$weekday = 1;
}
}
// Close current week
while ($weekday != 1 && $weekday <= 7) {
emptyday();
$weekday++;
}
// Close document
docfooter();
} // End main();
// Kick it all off
main();
?>