Anzahl Kalenderwochen pro Jahr

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Anzahl Kalenderwochen pro Jahr

    Heyho,

    da steh ich doch wieder mal vor nem Problem. Für eine KW/Jahres Auswahl benötige ich die maximale KW des ausgewählten Jahres.

    Ich suche also eine Funktion die mir anhand des Jahres die maximale Kalenderwoche gibt.
    date('W') mit dem letzten Tag des Jahres kann ich ja nicht nutzen weil der 31.12. ja auch schon in der ersten KW des nächsten Jahres liegen kann.

    Vielleicht könnt ihr mich auf die richtige Idee bringen.

    Danke

  • #2
    Jetzt steh ich gerade aufem Schlauch:

    PHP Code:
    date('W'mktime(00012312008)) //ergiebt 01 
    PHP Code:
    SELECT yearweek('2008-12-31')  //ergiebt 200852 
    Wer hat den denn jetzt recht?

    Comment


    • #3
      Kalenderwochen eines Jahres werden beginnend mit der Woche gezählt, in der der 4. Januar des jeweiligen Jahres liegt. Somit haben die meisten Jahre 52, manche aber 53 Kalenderwochen; zur ersten oder letzten Kalenderwoche gehören nicht selten Tage, die in einem anderen Jahr liegen. Nun mach was damit; ist doch nicht schwer

      Comment


      • #4
        Habs, zwar hintenrum durchs Knie, aber ok...

        PHP Code:
        $year 2008;
        echo 
        date('W', (mktime(00011$year+1) - 7*86400)); 
        1.1.2009 - 7 Tage ergiebt die letzte KW von 2008


        //edit:
        OK - 7 ist falsch. -4 Wäre richtig weil wenn der 1.1. ein Donnerstag ist liegt er ja noch in der letzten KW des Vorjahres...

        Also:
        PHP Code:
        $year 2008;
        echo 
        date('W', (mktime(00011$year+1) - 4*86400)); 
        Last edited by prego; 24-09-2008, 14:11.

        Comment


        • #5
          @prego
          Ich würde eine Kombi aus date und strtotime vorziehen
          PHP Code:
          echo date('W',strtotime('04.01.2009')); 
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Comment


          • #6
            Danke jah

            Lol, hatte erst strtotime hier stehn, aber dann gedacht das ich mit Sicherheit mktime() empfohlen bekomme

            Oder meinstest du strtotime alleine?

            Comment


            • #7
              Fürs Archiv: Hab mir was gebastelt.

              PHP Code:
              <?php
              function anzahlKalenderWochen($jahr// Gibt die Anzahl der Kalenderwochen eines gegebenen Jahrs (Format YYYY) zurück
               
              {
                
              $letzteKW date("W",strtotime("31.12.".$jahr));
                
              $anzahlKW = ($letzteKW == 1) ? 52 $letzteKW;
                return 
              $anzahlKW;
               } 
              // function anzahlKalenderWochen($jahr)

              ?>
              Keine Garantie, noch nicht getestet ;-)

              Comment


              • #8
                Ziemlich umständlich. Wenn du den 28.12. nimmst, geht es einfacher.
                Hier steht warum und wie.

                Comment

                Working...
                X