Einzelnen Beitrag anzeigen

Benutzerbild von kwhk
kwhk

Registriert seit: 25. Mär 2009
Ort: Dresden
168 Beiträge
 
Delphi 10.3 Rio
 
#7

AW: Kalenderwoche ermitteln

  Alt 30. Mai 2013, 12:49
Ganz so einfach ist das nicht, schon deshalb nicht, weil der 01.01.jjjj nicht unbedingt der Beginn der Woche 1 des Jahres jjjj sein muss. 2014 beginnt die Woche 1 am 30.12.2013, zumindest in Deutschland, wenn man sich mal darauf reduziert.
Die Woche 1 in Deutschland ist die, die den ersten Donnerstag enthält. http://de.wikipedia.org/wiki/Woche
Die Woche 1 in den USA ist die, die den 1. Januar enthält.
Ist der 01.01. ein Fr,Sa,So, beginnt die Woche 1 in Deutschland am folgenden Montag.
Ist der 01.01. ein Mo,Di,Mi,Do, beginnt die Woche 1 in Deutschland in dieser Woche, auch wenn davon noch ein paar Tage zum alten Jahr gehören (siehe Kalender 2014)
Man muss also zunächst ermitteln, zu welchem Wochentag der 01.01. des Ausgangsjahres gehört und danach bestimmen, an welchem Tag die Woche 1 des Ausgangsjahres beginnt, das kann u.U. auch ein Tag des Vorjahres sein, z.B.30.12.2013 = 1. Tag der Woche 1 von 2014.
Die Anzahl Wochen kann man mit 7 (Tage pro Woche) multiplizieren und zum Datum des ersten Tages der Woche 1 addieren. Aus dem dabei entstehenden Datum (1. Tag der gesuchten Woche) muss nun ähnlich wie vorher die Woche ermittelt werden.
Dazu zunächst das Datum der ersten Tages der Woche 1 ermitteln und dann die Tagesdifferenz zwischen 1.Tag Woche 1 und berechnetem Datum / 7 ergibt die gewünschte Woche.
Auch hier aufpassen, wenn das ermittelte Datum z.B. der 31.12.2013 ist, dann ist das die Woche 1 des Jahres 2014 !
Das Jahr des Datums des Wochenbeginns muss nicht das Jahr der zugehörogen Woche sein.
Beispiel 30.12.2013 gehört zur Woche 01-2014
Hartmut

Geändert von kwhk (30. Mai 2013 um 12:57 Uhr)
  Mit Zitat antworten Zitat