Savoir le premier et le dernier jour d'une semaine

Eléphanteau du PHP | 32 Messages

25 juil. 2006, 15:55

Hello !
Bon derrière ce titre un peu barbare, c'est tout simplement un script qui permet de savoir de quand à quand s'étend la semaine X de l'année.
Parce que moi, la semaine 44, ça ne m'évoque rien :)
Il suffit de modifier le début du script pour donner la valeur que l'on veut à la variable $ année.
         $annee=2009;
         //On cherche le nombre de semaines dans l'année. Si le 31 fait partie de la semaine 1 de l'année suivante, on recule d'un jour.
         $dernier_jour=31;
         do
         {
         $nb_semaine=date("W",mktime(0,0,0,12,$dernier_jour,$annee));
         $dernier_jour=$dernier_jour-1;
         }
         while($nb_semaine=='01');
         //La première semaine officielle est celle qui comprend le 4 janvier.
         $semaine=mktime(0,0,0,1,4,$annee);
         //On cherche quel jour est le 4 janvier pour trouver le lundi et le dimanche
         $num_jour_quatre_janvier=date("w",mktime(0,0,0,1,4,$annee));
         //Correction, si le jour est un dimanche, on dit qu'il vaut 7
         if($num_jour_quatre_janvier=='0') $num_jour_quatre_janvier=7;
         $ecart_lundi=$num_jour_quatre_janvier-1;
         $ecart_dimanche=7-$num_jour_quatre_janvier;
         for($i=1;$i<=$nb_semaine;$i++)
            {
            $lundi=$semaine-($ecart_lundi*86400);
            $dimanche=$semaine+($ecart_dimanche*86400);
            echo 'Semaine n°'.$i.': du '.strftime("%A %d %B %Y",$lundi).' au '.strftime("%A %d %B %Y",$dimanche).'<br />';
            $semaine=$semaine+604800;
            };
Normalement ça fonctionne correctement :)
J'ai testé sur une dizaine d'année et ça colle.