Ce code permet de calculer la date de pâques et est basé sur l'algorithmme de Oudin.
L'avantage de celui-ci est d'être parmi ceux qui demandent le moins d'opérations.
C'est donc un des plus intéressants pour le calcul généraliste (sans limite de siècle).
Il est sous sa forme non simplifiée donc utilisable pour toute année postérieure à 1583 (après l'apparition du calendrier grégorien).
Le calcul de la date de Pâques est loin d'être une chose si facile.
Pour information :
- G est le nombre d'or diminué de 1
- C et C_4 permettent le suivi des années bissextiles
- E c'est l'épacte
- H qui dépend de l'épacte
- I représente le nombre de jours entre la pleine lune pascale et le 21 mars
- J2 calcule le jour de la lune pascale (0=dimanche 1=lundi...6=samedi)
- R est le résultat final et représente la date du mois de mars, s'il dépasse 31 on déborde sur avril (... 30 correspond au 30 mars, 31 au 31 mars, 32 au 1er avril, 33 au 2 avril, ...).
Retrancher 31 le cas échéant pour obtenir la date d'avril.
Source / Exemple :
Function Paques(annee As Integer) As Date
Dim G, C, C_4, E, H, K, P, Q, I, B, J1, J2, R
G = annee Mod 19
C = annee \ 100
C_4 = C \ 4
E = (8 * C + 13) \ 25
H = (19 * G + C - C_4 - E + 15) Mod 30
K = H \ 28
P = 29 \ (H + 1)
Q = (21 - G) \ 11
I = (K * P * Q - 1) * K + H
B = annee \ 4 + annee
J1 = B + I + 2 + C_4 - C
J2 = J1 Mod 7
R = 28 + I - J2
If R <= 31 Then
Paques = DateValue(CStr(R) & "/3/" & CStr(annee))
Else
Paques = DateValue(CStr(R - 31) & "/4/" & CStr(annee))
End If
End Function
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.