calendrier-mensuel.php
<!-- $Id: script-nexen.php,v 1.4 2002/11/28 19:45:12 didou Exp $ -->
<!-- script-nexen.php,v 1.5 2001/05/30 13:02:01 pierre Exp -->
<!-- $Id: db.inc,v 1.24 2003/09/15 12:34:06 dams Exp $ -->
<!-- db.inc,v 1.238 2001/05/30 15:43:51 pierre Exp -->
<!-- $Id: connectlib.php,v 1.1 2001/11/20 09:04:45 sam Exp $ -->
<?php
/*
*
*
* Avertissement : Cette librairie de fonctions PHP est distribuee avec l'espoir
* qu'elle sera utile, mais elle l'est SANS AUCUNE GARANTIE; sans meme la garantie de
* COMMERCIALISATION ou d'UTILITE POUR UN BUT QUELCONQUE.
* Elle est librement redistribuable tant que la presente licence, ainsi que les credits des
* auteurs respectifs de chaque fonctions sont laisses ensembles.
* En aucun cas, Nexen.net ne pourra etre tenu responsable de quelques consequences que ce soit
* de l'utilisation ou la mesutilisation de ces fonctions PHP.
*/
/****
* Titre : calendrier_mensuel
* Auteur : smirnoff
* Email : cfab@boursorama.com
* Url :
* Description : Permet d'afficher un calendrier mensuel avec possibilité de balayer l'année en cours.
Mélange HTML et PHP... il faudrait ajouter tout plein de "echo...".
****/
function calendrier_mensuel($mois_affiche){
echo "<html><head><title>Calendrier</title><meta http-equiv='Content-Type' content='text/html; charset=iso-8859-1'></head><body bgcolor='#FFFFFF' text='#000000'>";
// script générant un calendrier
//année bissextile?
if (date("L")) {
$nb_jours=366;
$nb_jours_fevrier=29;
}
else {
$nb_jours=365;
$nb_jours_fevrier=28;
}
// initialisations
$ajd = date("z"); //date du jour présent
$annee=date("Y"); //annee correspondant au jour présent
$premier_jour_annee=jddayofweek(cal_to_jd($CAL_FRENCH,1,1,$annee),0);
$mois = array("vide","Janvier", "Février", "Mars", "Avril",
"Mai", "Juin", "Juillet", "Août",
"Septembre", "Octobre", "Novembre", "Décembre");
$jour = array("vide","Dimanche", "Lundi", "Mardi", "Mercredi",
"Jeudi", "Vendredi", "Samedi");
$nb_jours_dans_mois=array(0,31,$nb_jours_fevrier,31,30,31,30,31,31,30,31,30,31);
$numero_jour=array(); //numero du jour dans l'annee
$numero_mois=array(); //numero du mois pour chaque jour de l'annee
$numero_dans_le_mois=array(); //numero du jour dans le mois
$numero_dans_la_semaine=array(); //numero du jour dans la semaine 0=dimanche
$nb_jours_mensuels_ecoules=0; //nombre de jours total des mois entierement ecoules
$mois_en_cours=1; //initialisation du mois à janvier
for ($i=1 ; $i<=$nb_jours ; $i++)
{
// on regarde si on n'a pas changé de mois
if ( $i <= ($nb_jours_mensuels_ecoules + $nb_jours_dans_mois[$mois_en_cours]) )
{
$numero_dans_le_mois[$i]=$i - $nb_jours_mensuels_ecoules;
}
else
{
$nb_jours_mensuels_ecoules += $nb_jours_dans_mois[$mois_en_cours];
$mois_en_cours++;
$numero_dans_le_mois[$i]=1;
}
$numero_jour[$i]=$i;
$numero_mois[$i]=$mois_en_cours;
$numero_dans_la_semaine[$i]=($premier_jour_annee + $i -1) % 7;
}
?>
<table width="100%" border="1"><tr><td> </td><td> </td><td colspan="3"><div align="center"><?echo $mois[$mois_affiche]; ?></div></td><td> </td><td> </td></tr><tr><td>D</td><td>L</td><td>M</td><td>M</td><td>J</td><td>V</td><td>S</td></tr>
<?
$premier_jour_mois=jddayofweek(cal_to_jd($CAL_FRENCH,$mois_affiche,1,$annee),0);
$colonne=0;
for ($i=(-$premier_jour_mois+1); $i<= ($nb_jours_dans_mois[$mois_affiche]) ; $i++)
{
if ($colonne == 0) {echo "<tr>";} //on commence une ligne
if ($i <= 0)
{
echo "<td></td>"; //on insère des cases vides
}
else
{
echo ("<td>".$i."</td>");
}
if ($colonne == 6) {echo "</tr>";} //on termine la ligne
$colonne = ($colonne+1) %7;
}
?><tr><td><div align="center"><? if ($mois_affiche > 1)
{
$mois_prec=$mois_affiche-1;
echo ('<a href="calendrier.php?mois_affiche='.$mois_prec.'">Précédent</a>');
}
else
{
echo ('Précédent');
}?>
</div></td><td><div align="center"></div></td><td><div align="center"></div></td><td><div align="center"></div></td><td><div align="center"></div></td><td><div align="center"></div></td><td><div align="center">
<? if ($mois_affiche < 12)
{
$mois_suiv=$mois_affiche+1;
echo ('<a href="calendrier.php?mois_affiche='.$mois_suiv.'">Suivant</a>');
}
else
{
echo ('Suivant');
}
?>