Bonjour à tous,

Je cherche à determiner un jour dans l'année en fonction du numéro du jour dans l'année que je fourni à ma fonction.

admettons que je cherche à trouver 1er décembre et que pour ce faire je passe en paramètre à ma fonction 334

voici ma fonction :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 
public $jour_dans_le_mois = array(31,28,31,30,31,30,31,31,30,31,30,31);
public $tabMois=array("Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre");
 
public function jourPeriode($jourZ){
for($k=0; $k<=11; $k++) {
 
echo $k."=>".($jourZ - $this->jour_dans_le_mois[$k]).", ";
 
if(($jourZ - $this->jour_dans_le_mois[$k]) <= 0){
$k=12;
}else{
$jourZ -= $this->jour_dans_le_mois[$k]; 
$j++;
}
};
 
$tabReturn=array($jourZ+1, $this->tabMois[$j]);
return $tabReturn;
}
voici maintenant le résultat du echo placé au début de ma fonction :

0=>303, 1=>275, 2=>244, 3=>214, 4=>183, 5=>153, 6=>122, 7=>91, 8=>61, 9=>30, 10=>0, 0=>119, 1=>91, 2=>60, 3=>30, 4=>-1,
dans la mesure ou j'ai cette condition :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
if(($jourZ - $this->jour_dans_le_mois[$k]) <= 0){
$k=12;
}
lorsque $k est égal à 12 ne devrais-je pas sortir de cette boucle ???

J'étais parti au départ sur une boucle encore plus simple :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
public function jourPeriode($jourZ){
for($i=0; $i<=11; $i++) {
// cette boucle décompte tant que le numero est supérieur au nombre de jour du mois et passe au mois suivant, puis s'arrete quand le nombre correspond à la durée du mois parcouru.
echo $jourZ."=>".$this->jour_dans_le_mois[$i].", ";
 
if(($jourZ - $this->jour_dans_le_mois[$i]) > 0)  { $jourZ -= $this->jour_dans_le_mois[$i]; } else { break; } ;
};
$tabReturn=array($jourZ+1, $this->tabMois[$i]);
return $tabReturn;
}
et voici le résultat du echo :

334=>31, 303=>28, 275=>31, 244=>30, 214=>31, 183=>30, 153=>31, 122=>31, 91=>30, 61=>31, 30=>30, 150=>31, 119=>28, 91=>31, 60=>30, 30=>31,
à ce stade je n'y comprend plus rien

Merci d'avance pour votre aide