par
Calimero » 06 déc. 2008, 00:46
Version matheuse :
//mois en cours par defaut
$mois_en_cours=date('n');
//Determine le trimestre en cours (1,2,3,4)
$tri_en_cours = floor(($mois_en_cours-1)/3)+1;
//Determine le premier mois du trimestre en cours
$date_mois1_tri = 3*floor(($mois_en_cours-1)/3)+1;
EDIT : je rajoute l'explication, par étapes :
- On a notre mois en cours qui varie de 1 à 12 par pas de 1.
- On a donc ($mois_en_cours -1) qui varie de 0 à 11 par pas de 1 (ça va être plus pratique pour diviser à l'étape suivante, car 0 divisé par X donne 0)
- On a donc ($mois_en_cours-1)/3 qui varie de 0 à 3,666....67 par pas de 0,333...
- floor() transforme un nombre à virgule en nombre entier en arrondissant à l'entier inférieur. On a donc floor(($mois_en_cours-1)/3) qui varie de 0 à 3 par pas de 1.
- finalement, floor(($mois_en_cours-1)/3)+1 nous donne le numéro du trimestre courant tel qu'on le décrit humainement (nous sommes au 4ème trimestre).
Il y a juste une petite partie qui change à la fin pour trouver le numéro du premier mois du trimestre en cours, je te laisse découvrir et comprendre la différence (ou si vraiment tu ne comprends rien, oublie tout ça et choisis une des autres solutions proposées par
furiouslol qui marcheront tout aussi bien).