vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Schützen Sie Ihre Software vor Software-Piraterie - mit sevLock 1.0 DLL!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück
Rubrik: Datum/Zeit und Timer · Datums- und Zeitfunktionen   |   VB-Versionen: VB4, VB5, VB606.02.01
Kirchliche Feiertage berechnen

Wissen Sie, wie man ermitteln kann, wann im Jahr xxxx Ostersonntag oder Himmelfahrt ist? Nein? Dann schauen Sie sich diesen Tipp an!

Autor:   LonelySuicide666Bewertung:     [ Jetzt bewerten ]Views:  25.531 
www.vbapihelpline.deSystem:  Win9x, WinNT, Win2k, WinXP, Win7, Win8, Win10, Win11 Beispielprojekt auf CD 

Wissen Sie, wie man ermitteln kann, wann im Jahr xxxx Ostersonntag oder Himmelfahrt ist? Nein? Dann schauen Sie sich einmal nachfolgenden Tipp an!

Mit Hilfe dieser Rotuine lassen sich folgende Termine berechnen:

Aschermittwoch
Karfreitag
Ostersonntag
Ostermontag
Himmelfahrt
Pfingstsonntag
Pfingstmontag
Fronleichnam

Hierbei muß man eigentlich nur wissen, wie man das Datum für den Ostersonntag ermittelt. Alle anderen Daten lassen sich dann anhand des Ostersonntages berechnen.

Ostern ist stets am ersten Sonntag nach dem ersten Vollmond des Frühlingsanfangs (23.03).

' Osterformel nach Carl Friedrich Gauß (1777-1855)
Public Type Feiertage_Type
  Ostersonntag As Date
  Ostermontag As Date		' 1 Tag nach Ostersonntag
  Karfreitag As Date		' 2 Tage vor Ostersonntag
  Pfingstsonntag As Date	' 49 Tage nach Ostersonntag
  PfingstMontag As Date		' 50 Tage nach Ostersonntag
  Himmelfahrt As Date		' 39 Tage nach Ostersonntag
  Aschermittwoch As Date	' 46 Tage vor Ostersonntag
  Fronleichnam As Date		' 60 Tage nach Ostersonntag
End Type
 
Public Function Get_Feiertage(ByVal Jahr As Long) _
  As Feiertage_Type
 
  Dim a, b, c, d, e, f, s As Integer
  Dim M, N As Integer
 
  ' Gültigkeitsbereich ist vom Jahre 1583  - 8202
  If Jahr < 1583 Or Jahr > 8202 Then Exit Function
 
  ' Diese Function Rechnet das Datum des
  ' Vollmondes aus
  a = Jahr Mod 19
  b = Jahr Mod 4
  c = Jahr Mod 7
  M = Val(((8 * Val(Jahr / 100) + 13) / 25) - 2)
  s = Val(Jahr / 100) - Val(Jahr / 400) - 2
  M = (15 + s - M) Mod 30
  N = (6 + s) Mod 7
  d = (M + 19 * a) Mod 30
  If d = 29 Then
   d = 28
  ElseIf d = 28 Then
    If (Jahr Mod 19) > 10 Then d = 27
  End If
  e = (2 * b + 4 * c + 6 * d + N) Mod 7
 
  With Get_Feiertage
    .Ostersonntag = DateAdd("d", (d + e + 1), "21.03." & Jahr)
    .Ostermontag = DateAdd("d", 1, .Ostersonntag)
    .Karfreitag = DateAdd("d", -2, .Ostersonntag)
    .Pfingstsonntag = DateAdd("d", 49, .Ostersonntag)
    .Pfingstmontag = DateAdd("d", 50, .Ostersonntag)
    .Himmelfahrt = DateAdd("d", 39, .Ostersonntag)
    .Aschermittwoch = DateAdd("d", -46, .Ostersonntag)
    .Fronleichnam = DateAdd("d", 60, .Ostersonntag)
  End With
End Function

Beispiel:

' Ostersonntag 2002
Dim f As Feiertage_Type
f = Get_Feiertage(2002)
Debug.Print f.Ostersonntag

Dieser Tipp wurde bereits 25.531 mal aufgerufen.

Voriger Tipp   |   Zufälliger Tipp   |   Nächster Tipp

Über diesen Tipp im Forum diskutieren
Haben Sie Fragen oder Anregungen zu diesem Tipp, können Sie gerne mit anderen darüber in unserem Forum diskutieren.

Neue Diskussion eröffnen

nach obenzurück


Anzeige

Kauftipp Unser Dauerbrenner!Diesen und auch alle anderen Tipps & Tricks finden Sie auch auf unserer aktuellen vb@rchiv  Vol.6
(einschl. Beispielprojekt!)

Ein absolutes Muss - Geballtes Wissen aus mehr als 8 Jahren vb@rchiv!
- nahezu alle Tipps & Tricks und Workshops mit Beispielprojekten
- Symbol-Galerie mit mehr als 3.200 Icons im modernen Look
Weitere Infos - 4 Entwickler-Vollversionen (u.a. sevFTP für .NET), Online-Update-Funktion u.v.m.
 
   

Druckansicht Druckansicht Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel