Robert L.: Alle Tage einer KALENDERWOCHE ausgeben (gerne auch in MySQL)

Hallo!

In PHP oder MySQL zu Lösen:

Wie werden bitte alle Tage angezeigt, welche sich
in Kalenderwoche $kw im Jahr $jahr befinden?

Zum Beispiel wenn ich definiere:

$kw = 22;
$jahr = 2010;

Dann wären die korrekten Ergebnisse:

Sonntag,     6.  Juni 2010
Montag,      7.  Juni 2010
Dienstag,    8.  Juni 2010
Mittwoch,    9.  Juni 2010
Donnerstag, 10.  Juni 2010
Freitag,    11.  Juni 2010
Samstag,    12.  Juni 2010

Das soll PHP automatisch ausgeben,  gerne auch
unter Zuhilfenahme von MySQL.

So dass ich nur $kw und $jahr angebe,
und das Script sagt mir welche Tage in diese KW fallen.

Danke
Robert L.

  1. Hello,

    Wie werden bitte alle Tage angezeigt, welche sich
    in Kalenderwoche $kw im Jahr $jahr befinden?

    Und was hast Du schn unternommen für eine Lösung?
    Welchen Ansatz hast Du?

    Schau bei http://www.php.net/manual/de/function.date.php   "W"
    aber vergleiche, ob es stimmt:

    wenn der erste Januar ein Mo, Di, Mi oder Do ist, ist dies die erste Kalenderwoche des Jahres.
    Wenn der 31. Dezember ein Do, Fr, Sa, oder So ist, ist diese Woche die letzte eines Jahres.

    Du musst außerdem feststellen, ob das Jahr 52 oder 53 Wochen hat.
    Dazu wirst Du die Informationen benötigen:

    • Welche Wochentage sind 01.01 und 31.12?
    • ist das Jahr ein Schaltjahr?
    • ist das Vorjahr ein Schaltjahr?

    Liebe Grüße aus Syburg bei Dortmund

    Tom vom Berg

    --
    Nur selber lernen macht schlau
    http://bergpost.annerschbarrich.de
    1. Moin!

      wenn der erste Januar ein Mo, Di, Mi oder Do ist, ist dies die erste Kalenderwoche des Jahres.
      Wenn der 31. Dezember ein Do, Fr, Sa, oder So ist, ist diese Woche die letzte eines Jahres.

      Wenn's denn so einfach wäre. Es gibt natürlich unterschiedliche Systeme der Wochennumerierung, nicht nur eines - wäre ja auch zu einfach, wenn die Menschen sich mal was einheitliches überlegt hätten. :)

      Deine Angaben stimmen für deutsche Verhältnisse: Die erste Woche des Jahres ist die, die den Donnerstag enthält. Die Woche beginnt am Montag. Festgelegt in DIN ISO 8601.

      Andere Zählsysteme starten mit dem Sonntag als erstem Tag der Woche, bzw. mit der Woche als Nr. 1, in die der 1. Januar fällt. Die Wikipedia weiß natürlich mehr: http://de.wikipedia.org/wiki/Woche.

      MySQL hat in den Datumsfunktionen auch eine für die Kalenderwoche, welche als Parameter einen Wert entgegennimmt, der bestimmt, welche Art von Wochenzählung verwendet werden soll. Für deutsche Verhältnisse ist "3" korrekt. (http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html#function_week).

      PHP liefert keine solche variable Ausgabe, sondern kann mit date() lediglich die in deutschland gebräuchliche ISO-8601-Wochenzählung ausgeben (Parameter "W").

      - Sven Rautenberg

      --
      "Love your nation - respect the others."
    2. Hallo,

      nur so ein kleiner Exkurs:

      Ein Schaltjahr ist eines, was man durch 4 Teilen Kann. KEIN Schaltjahr ist, was man durch 4 UND 100 teilen kann. Wiederum IST es ein Schaltjahr, wenn man es durch 4 UND 100 UND 400 teilen kann.

      Wortwörtlich aus wikipedia: "Seit dem Ersten Konzil von Nicäa im Jahr 325, bei dem der Frühlingsanfang auf den 21. März festgelegt wurde, betrug die aufgelaufene Differenz im Jahr 1582 bereits 10 Tage. Von Papst Gregor XIII. wurde deshalb die julianische Schalttagsregelung insofern modifiziert (Metemptose im Gregorianischen Kalender), dass alle Jahre, die durch 4 teilbar sind, Schaltjahre darstellen. Ausgenommen von der Schaltjahresregelung sind volle Jahrhunderte, die durch 100, aber nicht durch 400 geteilt werden können." (http://de.wikipedia.org/wiki/Schaltjahr#Gregorianischer_Kalender)

      MfG

  2. Hallo!

    Wie werden bitte alle Tage angezeigt, welche sich
    in Kalenderwoche $kw im Jahr $jahr befinden?

    Schau Dir mal die DIN 1355 an.

    Viele Grüße,
    Hotte