Benoit Minisini si conferma un burlone altro che caratteraccio!
Per natale ci offre l'algoritmo pasquale sotto mentite spoglie e con qualche refuso:
Public Sub Form_Open()
Dim i As Date
Dim s As String
i = Easter(2015)
s = Format$(i, "dd mmmm")
Print s
End
Public Sub Easter(iYear As Integer) As Date
Dim A, B, C, D, E, F, G As Integer
A = iYear Mod 19 + 1
B = iYear Div 100 + 1
C = (3 * B) Div 4 - 12
D = (8 * B + 5) Div 25 - 5
E = (iYear * 5) Div 4 - 10 - C
F = ((11 * A + 20 + D - C) Mod 30 + 30) Mod 30
If F = 24 Or (F = 25 And A > 11) Then Inc F
G = 44 - F
If G < 21 Then G = G + 30
Return DateAdd(Date(iYear, 3, 1), gb.Day, G + 7 - (E + G) Mod 7 - 1)
End
Stavo giusto studiandomi questo codice VB per portarlo in Gambas:
Pasqua:
Sub Command1_Click()
Dim strAnno As String
Dim Pasqua As Date
'Richiede l'anno di cui si vuole conoscere la data di Pasqua.
strAnno = InputBox$("Anno di cui si vuole conoscere la data di Pasqua:",,Trim(Str(Year(Now))))
'Determina il giorno di Pasqua.
If strAnno <> "" Then
Pasqua = PasquaGregoriana(Val(strAnno))
MsgBox "Giorno di Pasqua dell'anno " & strAnno & ": " & Pasqua & ".", vbInformation
End If
End Sub
Function PasquaGregoriana(Anno As Integer) As Date
Dim Mese As Integer, Giorno As Integer
Dim A, B, C, D, E, F, G, H, I, K, L, M, N As Integer
If Anno < 1900 Then
MsgBox "Impossibile determinare il corretto giorno di Pasqua per anni precedenti al 1900.", vbExclamation
Exit Function
End If
A = Anno Mod 19
B = Anno \ 100
C = Anno Mod 100
D = B \ 4
E = B Mod 4
F = (B + 8) \ 25
G = (B - F + 1) \ 3
H = (19 * A + B - D - G + 15) Mod 30
I = C \ 4
K = C Mod 4
L = (32 + E + E + I + I - H - K) Mod 7
M = (A + 11 * H + 22 * L) \ 451
N = (H + L - 7 * M + 114)
Mese = N \ 31
Giorno = (N Mod 31) + 1
PasquaGregoriana = DateSerial(Anno, Mese, Giorno)
End Function
Una fatica in meno