Frage zu strftime, Kalenderwoche berechnen
-
Mondmann schrieb:
Der der Formatdesciptor %W gibt ja die Kalenderwoche von 00-53 an.
Wenn du die Kalenderwoche nach dem hier üblichen Schema (ISO 8601) berechnen willst, dann nimm %V.
Und ja, in manchen Jahren gibt es eine KW 53.
-
Ja aber %V gibt es nicht.....
Und warum ist der 31.12.2007 KW 53 und nicht KW01???
-
Mondmann schrieb:
Ja aber %V gibt es nicht.....
Klar gibt's das.
Mondmann schrieb:
Und warum ist der 31.12.2007 KW 53 und nicht KW01???
Der 31.12.2007 ist KW 1. Die nächste KW 53 ist 2009.
-
MFK schrieb:
Mondmann schrieb:
Ja aber %V gibt es nicht.....
Klar gibt's das.
Wo nutzt du das? Ist nicht Teil des Standards.
-
ES nützt nichts.
Die Frage ist warum er beim 31.12.2007 KW 53 und nicht KW 1 berechnet?
-
Weil es dann doppeldeutig wäre. Dann würde es ja zwei KW1 im gleichen Jahr geben.
-
Ich möchte das Thema nochmal aufgreifen.
Das mit der KW 53 usw ist klar.Trotzdem habe ich wie im ersten Post die KW mit dem heutigen Datum berechnen und es kommt 07 heraus, obwohl definitiv heute KW08 ist.
Wie kann ich denn nun korrekt die KW berechnen?Mondmann
-
Hi !
...
%W
week number of the year as a decimal number (00-52) where Monday is the first day of the week
...Die erste Kalenderwoche ist also 0, die zweite 1, usw..
Ich kenne keine Funktion der Standardbibliothek, welche die Kalenderwoche als Zahlenwert liefert. Du könntestst nach int konvertieren und 1 dazuaddieren.
Oder dir ne Funktion g00geln.Gruß,
p.
-
Ja also wenn man http://www.a-m-i.de/tips/datetime/datetime.php
anguckt dann wird alles klar.
Es gibt einige Regeln zu beachten wann welche Kalenderwoche anfängt usw.
Mit den Funktionen kann man schon sehr viel anfangen.
Mir wurde dadurch einiges klarer.Hoffe anderen hilfts auch , grüße Mondmann
-
int KW() { char KW[10]; time_t t; struct tm * lt; time(&t); lt = localtime(&t ); strftime( KW, 9, "%W", lt); return atoi( KW )+1; }