Oktatási naptár (1)
Feladat: készítsünk olyan alkalmazást, mely az aktuális tanévre oktatási naptárt készít. Jelölje zöld háttérszínnel a tanítási napokat, a heti pihenőnapot, vasárnapot különböző szürke háttérrel, egyéb nem tanítási napot az előzőektől eltérő háttérszínnel jelenítse meg. Lehessen beállítani a tanév rendjét meghatározó időpontokat. Az adatokat adatbázisba mentse.
A megoldás első lépéseként oldjuk meg azt, hogy egy naptár jelenjen meg, melynek első dátuma az aktuális év augusztus elseje, utolsó pedig a következő év július 31-e.
http://gorbem.hu/PH/Naptar1.php
A látványt megvalósító kód:
<?php
$honap = array("", "Január", "Február", "Március", "Április", "Május", "Június", "Július", "Augusztus", "Szeptember", "Október", "November", "December");
$hnap = array("", "H", "K", "S", "C", "P", "S", "V");
$ma = getdate();
$aev = $ma[year];
$ho = $ma[mon];
$nap = $ma[mday];
$ev1 = $aev;
if ( $ho < 8 ){$ev1--;}
$ev2 = $ev1+1;
?>
<html>
<head>
<title>Oktatási naptár</title>
</head>
<body>
<center>
<h2><u><b>Oktatási naptár: <?php print "$ev1-$ev2."; ?></u></b></h2>
<font size="2" face="Courier
New">
<?php
print "<table border=1 bordercolor=\"black\"
cellpadding=0 cellspacing=0>\n";
print "<tr>";
for ($ev=$ev1; $ev<=$ev2; $ev++){
for ($ho=1; $ho<13; $ho++){
if ( (($ev == $ev1) && ($ho > 7)) || (($ev == $ev2) && ($ho < 8)) ){
print "<td>";
print "<table border=1 bordercolor=\"#eeeeee\" cellpadding=0 cellspacing=0>\n";
print "<tr>";
if ( $ho == 8 ){print "<th colspan=\"7\">$ev1. $honap[$ho]</th>";}
elseif( $ho == 1 ){print "<th colspan=\"7\">$ev2. $honap[$ho]</th>";}
else{print "<th colspan=\"7\">$honap[$ho]</th>";}
print "</tr>";
print "<tr>";
print "<th>H</th><th>K</th><th>S</th><th>C</th><th>P</th><th>S</th><th>V</th>";
print "</tr>";
print "<tr>";
$het = 1;
$kezd = TRUE;
for ($nap=1; $nap<32; $nap++){
if ( checkdate($ho, $nap, $ev) ){
$d = mktime(0,0,0,$ho,$nap,$ev);
$n = strftime("%u","$d");
if ( $kezd ){for ($i=0; $i<$n-1; $i++){print "<td> </td>";}$kezd = FALSE;}
if ( $n<6 ){print "<td
align=\"right\" bgcolor=\"#ffffff\">$nap</td>";}
if ( $n == 6 ){print "<td
align=\"right\" bgcolor=\"#dddddd\">$nap</td>";}
if ( $n == 7 ){print "<td
align=\"right\" bgcolor=\"#cccccc\">$nap</td>";}
if ( $n == 7 ){$het++; print "</tr>";}
}
}
if ( $n == 7){$het--;}
for ($i=$n; $i<7; $i++){print "<td> </td>";}
if ( $het < 6 ){print "<tr>";for ($i=0; $i<7; $i++){print "<td> </td>";}print "</tr>";}
print "</tr>";
print "</table>";
print "</td>";
}
if ( ($ho == 11) || ($ho == 3) || ($ho == 7) ){print "</tr>";}
}
}
print "</tr>";
print "</table>";
?>
</center>
</body>
</html>