1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65
|
<?php
// Récupération de l'année courante
$annee_courante = date('Y');
// Récupération du mois courant
$mois_courant = date('n');
// Variable verrou pour l'incrementation de l'année
$lock = 0;
// Création d'un timestamp positionné au premier du mois courant de l'année courante
$timestamp_an = mktime(0,0,0,$mois_courant,1,$annee_courante);
// Récupération du jour de la semaine du premier jour du mois
$jour_semaine = date('w',$timestamp_an);
// Comparaison pour définir ou se situe le premier samedi du mois par rapport au premier jour du mois
if($jour_semaine<>6)
{
switch ($jour_semaine)
{
case 0:
$decalage=6;
break;
case 1:
$decalage=5;
break;
case 2:
$decalage=4;
break;
case 3:
$decalage=3;
break;
case 4:
$decalage=2;
break;
case 5:
$decalage=1;
break;
}
}
else
{
$decalage=0;
}
$j=0;
// Boucle de création de deux tableaux répertoriant les dates des samedi et du mois associés sur l'année entière
for($i=0;$i<=52;$i++)
{
$samedi=date("d" , mktime(0,0,0,$mois_courant,1+$j+$decalage,$annee_courante));
$mois=date("m" , mktime(0,0,0,$mois_courant,1+$j+$decalage,$annee_courante));
$tab_samedi[$i]=$samedi;
$tab_mois[$i]=$mois;
$j=$j+7;
// Si le mois courant est Janvier et que l'on est a plus de 5 tours dans la boucle, alors on incremente l'année
if ($mois_courant == 1 && $i > 6 && $lock == 0)
{
$annee_courante = $annee_courante + 1;
$lock = 1; // Verrouillage de la condition, pour ne l'executer qu'une seule fois
}
}
// Debug
for($i=0;$i<=52;$i++)
{
echo $tab_samedi[$i].'/'.$tab_mois[$i].'<br />';
}
?> |
Partager