Benutzung auf eigene Gefahr ! |
Beschreibung |
Gibt den Namen des Wochentages zurück oder, bei Feiertagen, den Namen des Feiertages. Bei normalen Tagen verhält sich das Programm wie die Funktion 'WeekDay'. |
VBA-Quelltext |
Public Function FeierTag(Datum As Date) As String Dim Jahr As Integer Jahr = Year(Datum) If (Jahr > 1904) And (Jahr < 2100) Then Select Case Format$(Datum, "dd.mm") ' Gesetzliche Feiertage Case "01.01": FeierTag = "Neujahr" Case "06.01": FeierTag = "Heilige Drei Könige" Case "01.05": FeierTag = "Tag der Arbeit" Case "15.08": FeierTag = "Mariä Himmelfahrt" Case "03.10": FeierTag = "Tag der Deutschen Einheit" Case "31.10": FeierTag = "Reformationstag" Case "01.11": FeierTag = "Allerheiligen" Case "24.12": FeierTag = "Heiligabend" Case "25.12": FeierTag = "1. Weihnachtsfeiertag" Case "26.12": FeierTag = "2. Weihnachtsfeiertag" Case "31.12": FeierTag = "Sylvester" Case Else ' Bewegliche Feste: Select Case Datum - OsterSonntag(Datum) Case -52: FeierTag = "Weiberfastnacht" Case -48: FeierTag = "Rosenmontag" Case -2: FeierTag = "Karfreitag" Case 0: FeierTag = "Ostersonntag" Case 1: FeierTag = "Ostermontag" Case 39: FeierTag = "Christi Himmelfahrt" Case 49: FeierTag = "Pfingstsonntag" Case 50: FeierTag = "Pfingstmontag" Case 60: FeierTag = "Fronleichnam" Case Else If Datum = CDate("25.12." & Jahr) - WeekDay("25.12." & Jahr, _ vbMonday) - 32 Then FeierTag = "Buß- und Bettag" Else FeierTag = Format$(Datum, "ddd") ' Kein Feiertag End If End Select End Select Else: FeierTag = vbNullString End If End Function |
Argumente der Funktion/Prozedur |
|
Verwendete Variable |
|
Rückgabewert |
Bezeichnung des Feiertages bzw. Wochentages |
Hinweis |
Zur Berechnung des Ostersonntags wird eine weitere Funktion als Unterprogramm benutzt. Der Buß- und Bettag hängt vom Kirchenjahr ab und fällt auf den vorletzten Mittwoch vor dem 1. Advent. |
Anwendungsgebiete, Fehler und Warnungen |
Das Programm beschränkt sich auf die Jahre zwischen 1904 und 2099, da die Formeln von Gauß (Osterberechnung) einen Parameter enthalten, der vom Jahr abhängig ist und dieser nur für die Jahre 1900-2099 hinterlegt wurde. Zusätzlich haben verschiedene Programme Probleme mit dem Jahr 1900 (kein Schaltjahr) und beginnen daher mit der Datumsdefinition ab 1904. |