>>> Ohne Kommentar (Die Zu-Fuss-Methode)<<<
1984 START: Hochzeit
- 1985
- 1986
- 1987
- 1988 1. Hochzeitstag
- 1989
- 1990
- 1991
- 1992 2. Hochzeitstag
- 1993
- 1994
- 1995
- 1996 3. Hochzeitstag
- 1997
- 1998
- 1999
- 2000 4. Hochzeitstag
- 2001
- 2002
- 2003
- 2004 5. Hochzeitstag
Christel und Siggi sind 20 Jahre verheiratet.
Meineserachtens fiel kein Schaltjahr aus.
Bekomme ich jetzt auch etwas?
Gruß Uwe<hr>
Ein astronomisches Jahr (eine volle Umkreisung der Erde um die Sonne) dauert etwa 365,24 Tage. Um diese krumme Zahl in einen Kalender zu pressen, hat Papst Gregor in seiner Kalender-Reform entsprechende Schalttage eingefügt, so dass z.B. die Tag/Nachtgleiche immer auf den 21.3. und 21.9. fällt.
Um herauszufinden, ob ein gegebenes Jahr ein Schaltjahr ist, muss man die folgende Festlegung kennen: Alle durch 4 teilbaren Jahreszahlen sind Schaltjahre, aber nicht die durch 100 teilbaren, es sei denn sie sind sogar durch 400 teilbar.
Also ist 1996 ein Schaltjahr gewesen, 1900 nicht, 2001 auch nicht, 2000 und 2004 jedoch schon.
Man kann die o.g. Festlegung in VB direkt in einen Algorithmus umsetzen:
Code: Alles auswählen
Public Function Schaltjahr( _ Optional ByVal Jahr As Integer = -1 _ ) As Boolean
'Default ist aktuelles Jahr:
If Jahr = -1 Then Jahr = Year(Now)
'Festlegung anwenden:
If Jahr Mod 4 = 0 Then
'durch 4 ohne Rest teilbar!
If Jahr Mod 100 = 0 Then
If Jahr Mod 400 = 0 Then Schaltjahr = True
Else
Schaltjahr = True
End If
End If
End Function
Die VB-Funktion
DateSerial rechnet auch mit Überläufen, d.h. aus dem Tag vor dem "1.5.2001" (ergo "0.5.2001") wird automatisch "30.4.2001" gemacht. So kann also leicht festgestellt werden, ob der Februar 29 Tage hat, und damit ein Schaltjahr vorliegt:
Code: Alles auswählen
Public Function Schaltjahr( _ Optional ByVal Jahr As Integer = -1 _ ) As Boolean
'Default ist aktuelles Jahr:
If Jahr = -1 Then Jahr = Year(Now)
'Den Tag vor dem 1.3. bestimmen:
Schaltjahr = Day(DateSerial(Jahr, 3, 0)) = 29
End Function
Das sieht doch sehr elegant aus, nicht wahr? Leider hat diese zweite Variante einen kleinen Nachteil: Sie benötigt im Vergleich zur ersten über 25-mal länger!
Das Jahr 3200/3600
Die Gelehrten streiten sich noch, ob nicht ein Schalttag in den 3000er ausfallen soll: Entweder im Jahr 3200 oder im Jahr 3600 wird es keinen 29. Februar geben - nehme dir für diese Tage also nichts vor!
Gruß Zweistein