calcul nbre samedi dans mois

Eléphant du PHP | 335 Messages

23 mai 2005, 17:47

Bonjour,

j'ai ecrit un fonction qui permet de calaculer le nombre de samedi par mois en fonction d'un mois et d'une année
<?php
function getSamedi ($mois, $annee) {
    $jour = 1;
    $cpt = 0;
    while (checkdate ($mois, $jour ++, $annee) === true) {
        $stamp = mktime (0,0,0,$mois,$jour, $annee);
        if (date ('D', $stamp) === 'Sat')
            $cpt++;
        }
    return $cpt;
}

$nbre_samedi = getSamedi (5, 2005);
echo $nbre_samedi;
?>
en la testant sue les années 2004 et 2005, j'ai remarqué des erreurs
pour 2004 : janvier septembre et octobre ne sont pas les bons résultats
pour 2005 : c'est avril mai et decembre

je ne comprends pas pourquoi ces erreurs!!

merci pour votre aide...

Mammouth du PHP | 19672 Messages

23 mai 2005, 17:55

Je viens de faire un essai en vérifiant les mois que tu as mentionnées: ça fonctionne très bien...
- 5 samedis pour janvier 2004 : OK
- 4 samedis pour septembre 2004 : OK
- 5 samedis pour octobre 2004 : OK
Tu n'as pas ces résultats là ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 335 Messages

23 mai 2005, 17:57

mince jme suis trompé

en fait j'ai inversé


voici mes vrais erreurs :
pour 2005 : janvier septembre et octobre ne sont pas les bons résultats
pour 2004 : c'est avril mai et decembre

Mammouth du PHP | 19672 Messages

23 mai 2005, 18:12

Voilà, je crois que j'ai toruvé: ça sautait le premier si le 1er du mois était un samedi:
<?php
function getSamedi ($mois, $annee)
{
    $jour = 1;
    $cpt = 0;
    while (checkdate ($mois, $jour, $annee) === true)
    {
        $stamp = mktime (0,0,0,$mois,$jour, $annee);
        if (date ('D', $stamp) === 'Sat')
		{
        	$cpt++;
		}
		$jour++;
    }
    return $cpt;
}

$nbre_samedi = getSamedi (10, 2005);
echo $nbre_samedi;
?>
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

23 mai 2005, 19:06

Cette fonction pourrait être grandement améliorée en procédant avec un autre algo: on prend le nombre de jour du mois, le premier jour du mois (ce qui nous donne le numéro du premier samedi du mois), et on en déduit immédiatement le nombre de samedi dans le mois :arrow: pas de boucle :)

Eléphant du PHP | 287 Messages

23 mai 2005, 19:22

quoi, elle te plaisait pas celle que je t'avais fillé :roll:
http://phpfrance.com/forums/voir_sujet-3234.php

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

23 mai 2005, 19:58

C'est exactement à ce genre d'algo que je pensais ;)

Eléphant du PHP | 335 Messages

24 mai 2005, 09:26

merci cyrano pour avoir trouvé mon erreur

et merci a toi thierry (dsl mais je n'avais pas vu qu'on m'avais répondu dans mon autre topic)

vous avez raison la fonction de thierry est mieux, jvé regarder ca

bonne journée a tous

Eléphant du PHP | 335 Messages

24 mai 2005, 09:35

qu'entends tu par $jour_a_trouver?

Eléphant du PHP | 335 Messages

24 mai 2005, 09:57

en fait, c'est bon!

merci bcp thierry...