Kalle Wirsch: Datumsfunktionen in Verbindung mit Kalenderwochen

Grüzi,

gibt es in PHP eine Möglichkeit die Anzahl der Kalenderwochen im aktuellen Jahr zu ermitteln? Dieses Jahr gibt es 53 KWs aber nächstes nur 52

Und die Zusatzfrage: Kann man anhand der aktuellen KW die dazugehörige Datums Range ermitteln? ( Mo - Fr )

Danke und Grüße
Kalle

  1. Hello,

    Grüzi,

    gibt es in PHP eine Möglichkeit die Anzahl der Kalenderwochen im aktuellen Jahr zu ermitteln? Dieses Jahr gibt es 53 KWs aber nächstes nur 52

    Und die Zusatzfrage: Kann man anhand der aktuellen KW die dazugehörige Datums Range ermitteln? ( Mo - Fr )

    Die erste Kalenderwoche ist in DE diejenige, in der der 05. Januar liegt.

    Du könntest also feststellen, welcher Wochentag der 05. Januar ist und dann von dort aus extrapolieren.

    Harzliche Grüße aus http://www.annerschbarrich.de

    Tom

    --
    Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
    Nur selber lernen macht schlau
    1. Hello,

      gibt es in PHP eine Möglichkeit die Anzahl der Kalenderwochen im aktuellen Jahr zu ermitteln? Dieses Jahr gibt es 53 KWs aber nächstes nur 52

      Und die Zusatzfrage: Kann man anhand der aktuellen KW die dazugehörige Datums Range ermitteln? ( Mo - Fr )

      Die erste Kalenderwoche ist in DE diejenige, in der der 05. Januar liegt.

      Du könntest also feststellen, welcher Wochentag der 05. Januar ist und dann von dort aus extrapolieren.

      Nachtrag: Wenn ich mich recht erinnere, wird die 53. Woche in PHP mit 0 gekennzeichnet und nicht mit 53.

      Und hier noch ein Link: http://www.pjh2.de/datetime/weeknumber/wnd.php?l=de

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
    2. Hello,

      knapp daneben ist auch vorbei...

      Die erste Kalenderwoche ist in DE diejenige, in der der 05. Januar liegt.

      April April... es ist der 4. Januar

      Du könntest also feststellen, welcher Wochentag der 05. Januar ist und dann von dort aus extrapolieren.

      Harzliche Grüße aus http://www.annerschbarrich.de

      Tom

      --
      Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
      Nur selber lernen macht schlau
    3. hallo tommi,

      Die erste Kalenderwoche ist in DE diejenige, in der der 05. Januar liegt.

      is ja auch egal, ob am 5., 4., 3 usw.

      hier mal ein auszug zur info:
      // Die deutschen Kalenderwochen berechnen sich wie folgt:
      // Der 1. Januar eines Jahres gehört erst dann zur ersten
      // Kalenderwoche, wenn dieser Tag auf einen Montag,
      // Dienstag, Mittwoch oder Donnerstag fällt.
      // Falls der 1.Januar ein Freitag, Samstag oder Sonntag ist,
      // zählt er, und ggf. auch der 2. und 3. Januar, noch zur
      // letzten Kalenderwoche des vorherigen Jahres.
      //
      // Weiterhin können der 29., 30. und 31.12. eines Jahres schon
      // zur Kalenderwoche 1 des neuen Jahres gehören.
      // Das ist genau dann der Fall, wenn der 31.12. auf einen
      // Montag, Dienstag oder Mittwoch fällt.
      //
      // Bemerkungen zur Berechnung der Wochennummer nach DIN 1355:
      //
      //
      // Der Montag ist der erste Tag der Woche
      // Der 4. Januar liegt immer in der ersten Kalenderwoche.
      // Der 28. Dezember liegt immer in der letzten Kalenderwoche.
      // aus diesen Definitionen folgt:
      //
      // Eine Woche gehört zu demjenigen Kalenderjahr, in dem 3
      // oder mehr Tage der Woche liegen.
      // Der Donnerstag einer Woche liegt immer in demjenigen
      // Kalenderjahr, dem die Woche zugerechnet wird.

      auf jeden fall hast du mit dem 4. januar recht.

      1. Hallo,

        // Der 28. Dezember liegt immer in der letzten Kalenderwoche.

        Dann korrigiere ich meine Funktion:

        function KWochen($jahr)
        {
          $kw=date("W",strtotime("28 December ".$jahr));
          return $kw;
        }

        MfG, Thomas

        1. Hello,

          // Der 28. Dezember liegt immer in der letzten Kalenderwoche.

          Dann korrigiere ich meine Funktion:

          function KWochen($jahr)
          {
            $kw=date("W",strtotime("28 December ".$jahr));
            return $kw;
          }

          Dann hast Du jetzt die höchste Wochennummer des angegebenen Jahres, wenn es nicht mit der 53. Woche beginnt. Das gibt jedenfalls PHP jetzt aus, wenn man nach der Wochennummer für den 1. Januar 2005 fragt. Ich meine zwar, dass es da mal eine version gab, die dafür 0 ausgegeben hätte, aber beachten muss man diese Doppeldeutigkeit auf jeden Fall.

          Es gab auch bei der PTB eine Seite darüber, aber über die Suche kann ich die auch nicht mehr finden. Das Internet ist eben dynamisch.

          Harzliche Grüße aus http://www.annerschbarrich.de

          Tom

          --
          Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
          Nur selber lernen macht schlau
          1. Hallo,

            Dann hast Du jetzt die höchste Wochennummer des angegebenen Jahres, wenn es nicht mit der 53. Woche beginnt.

            Es kommt fuer 2004 53 und fuer 2005 52 heraus, offenbar genau das, was der OP wissen wollte.

            MfG, Thomas

        2. Grüzi an Alle,

          $kw=date("W",strtotime("28 December ".$jahr));

          das funktioniert schon. ( Zumindest passt es für diese Jahr, weil Ergebnis ist 53 )

          Jetzt muss ich nur noch die Datums Range raus fummeln.

          Vielen Dank an Alle.

          So long
          Kalle

      2. Hello fk,

        // Eine Woche gehört zu demjenigen Kalenderjahr, in dem 3
        // oder mehr Tage der Woche liegen.
        // Der Donnerstag einer Woche liegt immer in demjenigen
        // Kalenderjahr, dem die Woche zugerechnet wird.

        Das kann nicht sein, denn eine Woche hat meines Wissens nach sieben Tage, also könnten drei Tage in einem Jahr und vier Tage im anderen Jahr liegen. Nach obiger Definition würde sie dann also zu beiden Jahren gehören, was ja nun aber gerade ausgeschlossen werden sollte.

        Schau also bitte nochmals nach, woher die Definition kommt und ob Du Dich nicht vertippt hast.

        Harzliche Grüße aus http://www.annerschbarrich.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        Nur selber lernen macht schlau
        1. hallo tommi,

          // Eine Woche gehört zu demjenigen Kalenderjahr, in dem 3
          // oder mehr Tage der Woche liegen.
          // Der Donnerstag einer Woche liegt immer in demjenigen
          // Kalenderjahr, dem die Woche zugerechnet wird.

          Das kann nicht sein, denn eine Woche hat meines Wissens nach sieben Tage, also könnten drei Tage in einem Jahr und vier Tage im anderen Jahr liegen. Nach obiger Definition würde sie dann also zu beiden Jahren gehören, was ja nun aber gerade ausgeschlossen werden sollte.

          das ist völlig richtig. eine woche hat 7 tage und beginnt immer mit montag. (steht schon in der bibel)
          da das jahr aber nicht immer mit montag beginnt (wir hatten ja schon auch mal sylvester an einem montag und trtzdem war der 1. januar ein dienstag), muß eine woche von montag bis sonntag in 2 kalenderjahren liegen.

          anders sieht es bei der wochezählung aus: korrekt gesehen kann die 1. kw noch im alten jahr liegen oder die letzte kw schon im neuen.

          ich benutze ja schon lange keine print-kalender mehr, meine aber mich daran zu erinnern, daß ich dies auch in den kalendern so gesehen habe.

          Schau also bitte nochmals nach, woher die Definition kommt und ob Du Dich nicht vertippt hast.

          das kommt ja nicht von mir. war nur eine kopie des zitates.

          1. Hello,

            das ist völlig richtig. eine woche hat 7 tage und beginnt immer mit montag. (steht schon in der bibel)

            War das immer so? Ich habe noch dunkel in Erinnerung, dass die Woche mal mit Sonntag begann.

            das kommt ja nicht von mir. war nur eine kopie des zitates.

            Genau. Und deshalb muss die Quelle falsch sein. Denn die von Dir vollkommen richtig genannte DIN 1355 zählt die Woche zu demjenigen Jahr, in dem die überwiedende Zahl ihrer Tage liegt. Und das wäre dann vier oder mehr. Dur schriebst aber '3 oder mehr'. Das habe ich eben bezweifelt.

            Harzliche Grüße aus http://www.annerschbarrich.de

            Tom

            --
            Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
            Nur selber lernen macht schlau
            1. das ist völlig richtig. eine woche hat 7 tage und beginnt immer mit montag. (steht schon in der bibel)

              War das immer so? Ich habe noch dunkel in Erinnerung, dass die Woche mal mit Sonntag begann.

              ich habe mal im kommunionsunterricht gelernt: am 7. tage sollst du ruhen.
              und gedenke, daß du den sabbat heiligst. (arbeitsfrei zum beten)
              hieraus schließe ich, daß die woche mit dem 7. tage endet.

              das kommt ja nicht von mir. war nur eine kopie des zitates.

              Genau. Und deshalb muss die Quelle falsch sein. Denn die von Dir vollkommen richtig genannte DIN 1355 zählt die Woche zu demjenigen Jahr, in dem die überwiedende Zahl ihrer Tage liegt. Und das wäre dann vier oder mehr. Dur schriebst aber '3 oder mehr'. Das habe ich eben bezweifelt.

              is ja auch richtig: dort wo der überwiegende teil der woche liegt. da diese eine ungerade zahl an tagen hat, ergibt sich immer eine mehrheit. und der donnerstag ist immer dabei. deshalb kann man auch sagen: der donnerstag ist entscheidend.
              was du mit 3 oder mehr meinst ????

              1. Hello,

                is ja auch richtig: dort wo der überwiegende teil der woche liegt. da diese eine ungerade zahl an tagen hat, ergibt sich immer eine mehrheit. und der donnerstag ist immer dabei. deshalb kann man auch sagen: der donnerstag ist entscheidend.
                was du mit 3 oder mehr meinst ????

                Zitat aus Deinem Zitat:

                // Eine Woche gehört zu demjenigen Kalenderjahr, in dem 3
                // oder mehr Tage der Woche liegen.
                // Der Donnerstag einer Woche liegt immer in demjenigen
                // Kalenderjahr, dem die Woche zugerechnet wird.

                Es ist ohnehin ungenau formuliert. Vier Tage sind ja auch 3 oder mehr. Aber so kann man das wohl nicht auffassen. Denn es sind mindestens vier odr mehr...

                Harzliche Grüße aus http://www.annerschbarrich.de

                Tom

                --
                Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
                Nur selber lernen macht schlau
          2. Moin fk,

            da das jahr aber nicht immer mit montag beginnt (wir hatten ja schon auch mal sylvester an einem montag und trtzdem war der 1. januar ein dienstag), muß eine woche von montag bis sonntag in 2 kalenderjahren liegen.

            siehe den Anfang dieses Jahres; Da war der 29/12/03 bereits KW 1

            regds
            Mike©

            --
            Freunde kommen und gehen. Feinde sammeln sich an.
  2. Hallo,

    gibt es in PHP eine Möglichkeit die Anzahl der Kalenderwochen im aktuellen Jahr zu ermitteln? Dieses Jahr gibt es 53 KWs aber nächstes nur 52

    Es sollte reichen, die Woche abzufragen, in der der 31. Dezember des Jahres liegt:

    <?php

    function KWochen($jahr)
    {
      $kw=date("W",strtotime("31 December ".$jahr));
      return $kw;
    }

    print KWochen(2004); // 53
    print "<br>";
    print KWochen(2005); // 52

    ?>

    MfG, Thomas