Patrick.Karre Geschrieben 3. Dezember 2007 Geschrieben 3. Dezember 2007 Hallo Forum, ich habe folgendes Problem: Ich habe eine Kalenderwoche im Jahr 2008. Jetzt brauche ich davon das Anfangsdatum (Montag) und Enddatum (Sonntag). Wie bekommen ich dies am besten unter C++ hin? Beste Grüße Patrick
Klotzkopp Geschrieben 3. Dezember 2007 Geschrieben 3. Dezember 2007 Füll eine tm-Struktur mit den Daten des Montags der ersten Kalenderwoche (in diesem Fall der 31.12.2007). Wandle das mit mktime in time_t um. Zu diesem time_t addierst du 7 * (kw -1) * 86400 für den Montag und weitere 6 * 86400 für den Sonntag. Diese beiden Werte kannst du dann mit localtime wieder in tm-Strukturen umwandeln.
Patrick.Karre Geschrieben 3. Dezember 2007 Autor Geschrieben 3. Dezember 2007 Ja generell eine gute Idee, aber das ganze sollte vom Jahr unabhängig sein. Ich hatte nur 2008 als Beispielt gegeben. Das heisst, ich kenne den ersten Montag für die folgende Jahre nicht. Wie kann ich die Funktion universeller schreiben?
Klotzkopp Geschrieben 3. Dezember 2007 Geschrieben 3. Dezember 2007 Das Datum des Montag KW1 eines beliebigen Jahres kannst du so ermitteln: Ermittle den Wochentag des 1.1. des gewünschten Jahres (mktime -> localtime). Abhängig davon änderst du diesen time_t-Wert: Wochentag des 1. Januar Relative Position des Montag KW1 Sonntag +1 Montag 0 Dienstag -1 Mittwoch -2 Donnerstag -3 Freitag +3 Samstag +2[/code] Wenn der Wochentag 0-basiert mit 0 = Sonntag ist (wie eben bei tm), kannst du die Anzahl der zu addierenden oder subtrahierenden Tage aus dem Wochentag des ersten Januar so ermitteln: Delta_tage = 3 - (wochentag + 2) % 7
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden