|
Deutsche Kalenderwoche berechnen |
|
|
|
|
Geschrieben von Horst Schulte
|
|
Samstag, 23. September 2006 |
Frage: Ich arbeite mit und möchte zu einem gegebenen Datum die dazugehörige Kalenderwoche berechnen. Die Funktion "Kalenderwoche" aus dem Add-In "Analysefunktionen" rechnet leider nicht entsprechend der DIN-Norm, sondern nach dem amerikanischen Standard. Wie kann ich die Kalenderwochen nach DIN 1355 berechnen? Antwort: Die deutschen Kalenderwochen berechnen sich wie folgt: Der 1. Januar eines Jahres gehört erst dann zur ersten Kalenderwoche, wenn dieser Tag auf einen Montag, Dienstag, Mittwoch oder Donnerstag fällt. Falls der 1. Januar ein Freitag, Samstag oder Sonntag ist, zählt er, gegebenenfalls auch der 2. und 3. Januar, noch zur letzten Kalenderwoche des vorherigen Jahres. Weiterhin können der 29., 30. und 31.12. eines Jahres schon zur Kalenderwoche 1 des neuen Jahres gehören. Das ist genau dann der Fall, wenn der 31.12. auf einen Montag, Dienstag oder Mittwoch fällt. Die folgende VBA-Funktion (Visual Basic für Applikationen) liefert die Kalenderwoche für ein Datum nach deutschem Standard: Function dt_Kalenderwoche(dat As Date) As Integer Dim a As Integer a = Int((dat - DateSerial(Year(dat), 1, 1) + _ ((WeekDay(DateSerial(Year(dat), 1, 1)) + 1) Mod 7) - 3) / 7) + 1 If a = 0 Then a = dt_Kalenderwoche(DateSerial(Year(dat) - 1, 12, 31)) ElseIf a = 53 And (WeekDay(DateSerial(Year(dat), 12, 31)) - 1) _ Mod 7 <= 3 Then a = 1 End If dt_Kalenderwoche = a End Function
|