Neben den beweglichen Osterfeiertagen gibt es auch bewegliche Feiertage in der Vorweihnachtszeit. Diese haben leider keine Verbindung mit den Osterfeiertagen, so das die "Osterformeln" nicht geeignet sind, auch diese Termine zu ermitteln.
Die Feiertage der Vorweihnachtszeit hängen vom 1. Advent ab. Für den Termin des 1. Advent habe ich verschiedene Definitionen gefunden:
Der erste Advent ist der Sonntag zwischen dem 27.11. und dem 03.12. Der erste Advent ist der erste Sonntag nach dem 26.11. Der vierte Advend ist der letzte Sonntag vor dem 25.12.
Diese Funktion berechnet das Datum des 1. Advent ausgehend von der Tatsache, dass der vierte Advent nicht gefeiert wird, wenn der heilige Abend auf einen Sonntag fällt:
Function advent(Jahr As Integer) As Date
' Berechnet das Datum des 1. Adventsonntags
' © Klaus-Dieter Oppermann
' 05.02.2008 Quelltext optimiert
advent = DateSerial(Jahr, 12, 24) - 20 - Weekday(DateSerial(Jahr, 12, 24)) ' 24.12. minus Tagesdifferenz
End Function
|
Diese Funktion, die ich von Jürgen Mader bekommen habe, berechnet den 1. Advent auf der Basis der dritten Definition der Adventtermine:
Public Function fn_Advent(Optional ByVal Jahr As Long) As Date
' Der hier zurückgegebene 1. Advent liegt 21 Tage (3 Wochen) vor dem 4. Advent
' Der 4. Advent ist der Sonntag der VOR(!) dem 25.12. liegt
' © Jürgen Mader
Dim dtDez25 As Date
Dim iWtDez25 As Integer
If Jahr = 0 Then Jahr = Year(Now)
' Datum des 25.12. ermitteln
dtDez25 = DateSerial(Jahr, 12, 25)
' Wochentag des 25.12. ermitteln
iWtDez25 = Weekday(dtDez25, vbMonday)
' Rückgabewert als Datum bereitstellen
fn_Advent = DateAdd("d", -(iWtDez25 + 21), dtDez25)
End Function '<<< fn_Advent >>>
Code eingefügt mit: Excel Code Jeanie |
Die Funktionen können genau so, wie ich es für die Osterfeiertage beschrieben habe, in das Tabellenblatt Termine eingefügt werden.
Wie weiter oben schon erläutert, kann mit dieser Funktion nur der 1. Advent berechnet werden. Die Formel muß für die anderen Feiertage modifiziert werden. Wie sehen wir in der folgenden Tabelle:
Feiertag | Differenz zum 1. Advent | Formel (Klaus-Dieter) | Formel (Jürgen Mader) |
Volkstrauertag | -14 | =advent(Kalender!A1)-14 | =fn_Advent(Kalender!A1)-14 |
Bußtag | -11 | =advent(Kalender!A1)-11 | =fn_Advent(Kalender!A1)-11 |
Totensonntag | -7 | =advent(Kalender!A1)-7 | =fn_Advent(Kalender!A1)-7 |
1. Advent | =advent(Kalender!A1) | =fn_Advent(Kalender!A1) | |
2. Advent | 7 | =advent(Kalender!A1)+7 | =fn_Advent(Kalender!A1)+7 |
3. Advent | 14 | =advent(Kalender!A1)+14 | =fn_Advent(Kalender!A1)+14 |
4. Advent | 21 | =advent(Kalender!A1)+21 | =fn_Advent(Kalender!A1)+21 |
Nachdem alle Formeln und Feiertage eingetragen sind, sollte das Ergebnis so aussehen:
Wichtig ist dabei, daß der Termin für den Heiligen Abend unbedingt nach den Adventsonntagen eingetragen wird. Da der 4. Advent auf den Heiligen Abend fallen kann, steht dann im Kalender der Heilige Abend.