un peu d'aide sur un calendrier
Posté : 19 nov. 2008, 11:48
Bonjour à tous
j'ai récupéré le calendrier de Anne Pacalet
je voudrai comprendre comment passer les semaines du samedi au samedi
si qqun pourrait m'expliquer
j'ai récupéré le calendrier de Anne Pacalet
je voudrai comprendre comment passer les semaines du samedi au samedi
si qqun pourrait m'expliquer
<?php
function Calendrier($month,$year,$links) {
$MonthNames = array(1 => "Janvier","Fevrier","Mars","Avril","Mai","Juin",
"Juillet","Aout","Septembre","Octobre","Novembre","Decembre");
$monthname = $MonthNames[$month+0];
// on ouvre la table
echo '<table class="cal" cellspacing="1">';
// Première ligne = mois et année ou link[0]
$title = array_key_exists(0, $links) ? $links[0] : $monthname.' '.$year;
echo '<tr><td colspan="7" class="cal_titre">'.$title.'</td>'."</tr>\n";
// Seconde lignes = initiales des jours de la semaine
$DayNames = array("L","M","M","J","V","S","D");
echo '<tr>'; foreach ($DayNames as $d) echo '<th>'.$d.'</th>'; echo "</tr>\n";
// On regarde si aujourd'hui est dans ce mois pour mettre un style particulier
if ($year == date('Y') && $month == date('m'))
$today = date('d');
else
$today = 0;
$time = mktime(0,0,0,$month,1,$year); // timestamp du 1er du mois demandé
$days_in_month = date('t',$time); // nombre de jours dans le mois
$firstday = date('w',$time); // jour de la semaine du 1er du mois
if ($firstday == 0) $firstday = 7; // attention, en php, dimanche = 0
$daycode = 1; // ($daycode % 7) va nous indiquer le jour de la semaine.
// on commence par le lundi, c'est-à-dire 1.
// on ouvre une première ligne pour le calendrier proprement dit :
echo '<tr>';
// on met des cases blanches jusqu'à la veille du 1er du mois :
for ( ; $daycode<$firstday; $daycode++) echo '<td> </td>';
// boucle sur tous les jours du mois :
for ($numday = 1; $numday <= $days_in_month; $numday++, $daycode++) {
// si on en est au lundi (sauf le 1er),
// on ferme la ligne précédente et on en ouvre une nouvelle
if ($daycode%7 == 1 && $numday != 1) echo "</tr>\n".'<tr>';
// on ouvre la case (avec un style particulier s'il s'agit d'aujourd'hui)
echo ($numday == $today ? '<td class="today">' : '<td>');
// on affiche le numéro du jour ou le contenu donné par l'utilisateur
echo (array_key_exists($numday, $links) ? $links[$numday] : $numday);
// on ferme la case
echo '</td>';
}
// on met des cases blanches pour completer la dernière semaine si besoin :
for ( ; $daycode%7 != 1; $daycode++) echo '<td> </td>';
// on ferme la dernière ligne, et la table.
echo '</tr>'; echo "</table>\n\n";
}
?>