<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<?
function JePrechodnyRok ($rok)
{
return (boolean) date("L", mktime(0,0,0,1,1,$rok));
}
function PocetDnu ($mesic, $rok)
{
return cal_days_in_month(CAL_GREGORIAN, $mesic, $rok);
}
function PrvniDen ($mesic, $rok)
{
$anglickeporadi = date("w", mktime(0, 0, 0, $mesic, 1, $rok));
return ($anglickeporadi==0) ? 7 : $anglickeporadi;
}
function Bunka ($radek, $sloupec, $PrvniDen, $PocetDnu)
{
$dny=Array(1=>"Po", "Út", "St", "Čt", "Pá", "So", "Ne");
if ($sloupec==1) return $dny[$radek];
$chcivratit = ($sloupec-2)*7 + $radek - $PrvniDen+1;
if ($chcivratit<1 || $chcivratit>$PocetDnu) return " "; else return $chcivratit;
}
function Kalendar ($mesic, $rok)
{
$mesice=Array(1=>"leden", "únor", "březen", "duben", "květen", "červen", "červenec", "srpen", "září", "říjen", "listopad", "prosinec");
//kontroly
if (!is_numeric($mesic)) return "Měsíc musí být číslo!";
if (!is_numeric($rok)) return "Rok musí být číslo!";
if ($mesic<1 || $mesic>12) return "Měsíc musí být číslo od 1 do 12";
if ($rok<1980 || $rok>2050) return "Rok musí být číslo od 1980 do 2050";
// zjištění počtu sloupců
$PocetDnu = PocetDnu ($mesic, $rok); $PrvniDen = PrvniDen($mesic,$rok);
$sloupcu = date("W", mktime(0, 0, 0, $mesic, $PocetDnu-7, $rok)) - date("W", mktime(0, 0, 0, $mesic, 1+7, $rok))+4;
// a tabulka
echo "<TABLE border=\"1\" style=\"border-collapse: collapse\" width=\"",$sloupcu*30,"\">";
echo "<TR><TD colspan=$sloupcu width=\"",$sloupcu*30,"\" align=\"center\">".$mesice[$mesic]." ".$rok."</TD></TR>\n";
for ($radek=1;$radek<=7;$radek++)
{
echo "<TR align=\"center\">";
for ($sloupec=1; $sloupec<=$sloupcu; $sloupec++) echo "<TD width=\"30\">".Bunka($radek, $sloupec, $PrvniDen, $PocetDnu)."</TD>";
echo "</TR>\n";
}
echo "</TABLE>";
}
Kalendar (5,2005);
?>