Im Einzelnen handelt es sich hier um den Volkstrauertag, Buss- und Bettag, Totensonntag sowie den 1. - 4. Advent.
Der folgende Code greift auf die im Teil 1 beschriebene Funktion SetYear() zurück.
Ähnlich wie beim Osterfest und den daran gekoppelten Feiertagen verhält es sich mit den an dieser Stelle aufgeführten Terminen. Basis ist der letzte Sonntag vor dem 1. Weihnachtsfeiertag.
* korrigierte Version gemäss wOOdy's Vorschlag
* CTOD() gegen die bessere DATE()-Funktion auszutauschen
FUNCTION GetVolkstrauertag as Date
LPARAMETERS Jahr as Integer
Jahr = SetYear(Jahr)
ld25 = DATE(Jahr,12,25)
RETURN ld25 - DOW(ld25,2) - 35
ENDFUNC
FUNCTION GetBussUndBettag as Date
LPARAMETERS Jahr as Integer
Jahr = SetYear(Jahr)
RETURN GetTotensonntag(Jahr) - 4
ENDFUNC
FUNCTION GetTotensonntag as Date
LPARAMETERS Jahr as Integer
Jahr = SetYear(Jahr)
ld25 = DATE(Jahr,12,25)
RETURN ld25 - DOW(ld25,2) - 28
ENDFUNC
FUNCTION GetErsterAdvent as Date
LPARAMETERS Jahr as Integer
Jahr = SetYear(Jahr)
ld25 = DATE(Jahr,12,25)
RETURN ld25 - DOW(ld25,2) - 21
ENDFUNC
FUNCTION GetZweiterAdvent as Date
LPARAMETERS Jahr as Integer
Jahr = SetYear(Jahr)
ld25 = DATE(Jahr,12,25)
RETURN ld25 - DOW(ld25,2) - 14
ENDFUNC
FUNCTION GetDritterAdvent as Date
LPARAMETERS Jahr as Integer
Jahr = SetYear(Jahr)
ld25 = DATE(Jahr,12,25)
RETURN ld25 - DOW(ld25,2) - 7
ENDFUNC
FUNCTION GetVierterAdvent as Date
LPARAMETERS Jahr as Integer
Jahr = SetYear(Jahr)
ld25 = DATE(Jahr,12,25)
RETURN ld25 - DOW(ld25,2)
ENDFUNC