public Sub GetEasterSunday(Year As Long) As String
' int a, b, c, d, e, p, q, r, x, y, tag, monat, jahr ;
Dim a, b, c, d, e, p, q, r, x, y, tag, monat, ptag, pmonat As Int
' System.out.println("Berechnung des Osterdatums nach Gauss");
' System.out.print("Jahreszahl : ");
' jahr = Stdin.intEingabe();
'
' //Es geht um die Berechnung der Größen d und e
' //Dazu braucht man die 9 Hilfsgrößen a, b, c, p, n, q, r, x, y !!
'
p = Year/100
q = p/3
r = p/4
x = (15+p-q-r) Mod 30
y = (4+p-r) Mod 7
a = Year Mod 19
b = Year Mod 4
c = Year Mod 7
d = (19*a+x) Mod 30
e = (2*b+4*c+6*d+y) Mod 7
If (d=29 And e=6) Then
' //=> Ostern am 19.April
tag=19
monat=4
else if (d=28 And e=6) Then
' //=> Ostern am 18.April
tag=18
monat=4
else if (22+d+e < 32) Then
' //=> Ostern am (22+d+e).März
tag=22+d+e
monat=3
Else
'// => Ostern am (d+e-9).April
tag=d+e-9
monat=4
End If
' System.out.print("Ostern ist/war am ");
If (tag < 10) Then
Log("0"&tag&"."&"0"&monat&"."&Year)
Else
Log(tag&"."&"0"&monat&"."&Year)
End If
'
If monat=3 Then
ptag = tag-12
pmonat=5
else if (monat=4 And tag < 13) Then
ptag = tag+19
pmonat=5
Else
ptag = tag-12
pmonat = 6
End If
' System.out.print("Easterday is ");
If (ptag < 10) Then
Return "0"&ptag&"."&"0"&pmonat&"."&Year
Else
Return ""&ptag&"."&"0"&pmonat&"."&Year
End If
End Sub