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
Auch hier gilt: Ersetzen des CTOD() Aufrufs durch die DATE() Funktion, die direkt numerische Parameter verwenden kann....
AntwortenLöschenHi wOOdy,
AntwortenLöschenDanke für die Info. Es ist doch immer gut, wenn mal jemand anderes auf den eigenen Code schaut. die Parameter 2 und 3 der DATE()-Funktion habe ich irgendwie aus meinem Gedächtnis verdrängt gehabt... Asche auf mein Haupt ;-)
-Tom