Zum Inhalt springen
View in the app

A better way to browse. Learn more.

Fachinformatiker.de

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Empfohlene Antworten

Veröffentlicht

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

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.

  • Autor

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?

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

Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.