Comment savoir combien de semaine il y a dans 1 an

Résolu
Marlocq Messages postés 119 Statut Membre -  
jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour je voudrais savoir combien de semaine il y a dans une année.

Avant j'utilisais cette fonction ci mais elle ne marche plus....

$year= date("Y");
$nbsem_max = date ("W",mktime(0,0,0,12,31,$year));

3 réponses

  1. MATHAEVS Messages postés 4 Date d'inscription   Statut Membre Dernière intervention   19
     
    52 semaine
    19
  2. baladur13 Messages postés 47339 Date d'inscription   Statut Modérateur Dernière intervention   14 395
     
    Bonjour,
    Années normales 365 jours ==> 365/7 = 52,124
    Années bissextiles 366 jours ==> 366/7 = 52,285
    donc toujours 52 semaines
    Toutefois il peut exister une semaine no 53 (années communes finissant un jeudi ; années bissextiles finissant un jeudi ou un vendredi).
    10
  3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
     
    Bonjour,
    Ceci devrait correspondre à tes besoins

    En javascript :
    function weeksInYear(year) {
      var d = new Date(year, 11, 31);
      var week = getWeekNumber(d)[1];
      return week == 1? getWeekNumber(d.setDate(24))[1] : week;
    }


    3
    1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Et en PHP :
      function getIsoWeeksInYear($year) {
          $date = new DateTime;
          $date->setISODate($year, 53);
          return ($date->format("W") === "53" ? 53 : 52);
      }
      
      0
    2. Marlocq Messages postés 119 Statut Membre
       
      Merci pour la réponse et pour ton aide.
      Peux tu me dire pourquoi le mktime ne marche plus? Déprécié?
      0
    3. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 831
       
      Je n'ai pas regardé.
      Mais au pire ... il faut déjà regarder au 28 décembre et non le 31 !
      Le 31 pouvant tomber en semaine 1 (la norme voulant que la semaine 1 soit la première de l'année ayant au moins 4 jours en janvier
      En gros la règle c'est :

      Toutes les règles ci-dessous sont équivalentes :
      la première semaine avec au moins quatre jours dans la même année civile
      la semaine du premier jeudi de l'année civile
      la semaine du 4 janvier
      la semaine dont le lundi est compris entre le 29 décembre et le 4 janvier


      Donc le 31 peut tomber un Lundi ou Mardi ou Mercredi de la semaine 1....
      Il ne te donnera donc pas le numéro "max" de semaines en fonction des années.....
      Donc le mktime doit encore fonctionner... mais en se référant au 28 décembre (qui tombe forcément la dernière semaine quoi qu'il arrive)
      0