NEU
This commit is contained in:
134
UID/Dienstplan/cFeiertage.vb
Normal file
134
UID/Dienstplan/cFeiertage.vb
Normal file
@@ -0,0 +1,134 @@
|
||||
Public Class cFeiertage
|
||||
Private _Year As Integer
|
||||
Private _Ostern As Date
|
||||
|
||||
''' <summary>
|
||||
''' Initialisiert die Feiertags-Klasse für das aktuelle Jahr
|
||||
''' </summary>
|
||||
Public Sub New()
|
||||
_Year = Now.Year
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Initialisiert die Feiertags-Klasse für das angegebene Jahr
|
||||
''' </summary>
|
||||
Public Sub New(ByVal Year As Integer)
|
||||
_Year = Year
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' Gibt das Datum für den Ostersonntag zurück.
|
||||
''' </summary>
|
||||
Public ReadOnly Property Ostersonntag() As Date
|
||||
Get
|
||||
If _Ostern.Ticks = 0 Then
|
||||
' Datum des ersten Vollmondes nach Frühlingsanfang
|
||||
Dim a As Integer = _Year Mod 19
|
||||
Dim b As Integer = _Year Mod 4
|
||||
Dim c As Integer = _Year Mod 7
|
||||
Dim M As Integer = Val(((8 * Val(_Year / 100) + 13) / 25) - 2)
|
||||
Dim s As Integer = Val(_Year / 100) - Val(_Year / 400) - 2
|
||||
|
||||
M = (15 + s - M) Mod 30
|
||||
|
||||
Dim N As Integer = (6 + s) Mod 7
|
||||
Dim d As Integer = (M + 19 * a) Mod 30
|
||||
If d = 29 Then
|
||||
d = 28
|
||||
ElseIf d = 28 Then
|
||||
If (_Year Mod 19) > 10 Then d = 27
|
||||
End If
|
||||
|
||||
Dim e As Integer = (2 * b + 4 * c + 6 * d + N) Mod 7
|
||||
|
||||
' Ostersonntag
|
||||
_Ostern = New DateTime(_Year, 3, 21).AddDays(d + e + 1)
|
||||
End If
|
||||
Return _Ostern
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Gibt das Datum für den Ostermontag zurück.
|
||||
''' </summary>
|
||||
Public ReadOnly Property Ostermontag() As Date
|
||||
Get
|
||||
Return Ostersonntag.AddDays(1)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Gibt das Datum für den Karfreitag zurück.
|
||||
''' </summary>
|
||||
Public ReadOnly Property Karfreitag() As Date
|
||||
Get
|
||||
Return Ostersonntag.AddDays(-2)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Gibt das Datum für den Pfingstsonntag zurück.
|
||||
''' </summary>
|
||||
Public ReadOnly Property Pfingstsonntag() As Date
|
||||
Get
|
||||
Return Ostersonntag.AddDays(49)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Gibt das Datum für den Pfingsmontag zurück.
|
||||
''' </summary>
|
||||
Public ReadOnly Property Pfingstmontag() As Date
|
||||
Get
|
||||
Return Ostersonntag.AddDays(50)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Gibt das Datum für Christi-Himmelfahrt zurück.
|
||||
''' </summary>
|
||||
Public ReadOnly Property Himmelfahrt() As Date
|
||||
Get
|
||||
Return Ostersonntag.AddDays(39)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Gibt das Datum für Fronleichnam zurück.
|
||||
''' </summary>
|
||||
Public ReadOnly Property Fronleichnam() As Date
|
||||
Get
|
||||
Return Ostersonntag.AddDays(60)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
''' <summary>
|
||||
''' Gibt das Datum für Aschermittwoch zurück.
|
||||
''' </summary>
|
||||
Public ReadOnly Property Aschermittwoch() As Date
|
||||
Get
|
||||
Return Ostersonntag.AddDays(-46)
|
||||
End Get
|
||||
End Property
|
||||
|
||||
|
||||
Public Function isFeiertag(datum As Date) As Boolean
|
||||
If datum = CDate("01.01." & _Year) Then Return True
|
||||
If datum = CDate("06.01." & _Year) Then Return True
|
||||
If datum = CDate("01.05." & _Year) Then Return True
|
||||
If datum = CDate("15.08." & _Year) Then Return True
|
||||
If datum = CDate("26.10." & _Year) Then Return True
|
||||
If datum = CDate("01.11." & _Year) Then Return True
|
||||
If datum = CDate("08.12." & _Year) Then Return True
|
||||
If datum = CDate("25.12." & _Year) Then Return True
|
||||
If datum = CDate("26.12." & _Year) Then Return True
|
||||
If datum = Ostermontag Then Return True
|
||||
If datum = Ostersonntag Then Return True
|
||||
If datum = Himmelfahrt Then Return True
|
||||
If datum = Pfingstmontag Then Return True
|
||||
If datum = Pfingstsonntag Then Return True
|
||||
If datum = Fronleichnam Then Return True
|
||||
Return False
|
||||
End Function
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user