Calcul de la date de pâques à partir de 1583 selon oudin

Contenu du snippet

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

A voir également

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.