Calcul date de paques (date mobile)

Contenu du snippet

Calcule la date du dimanche de pâques en fonction de l'année donnée.

L'année doit être postérieure à 1583 (apparition du calendrier grégorien).

Source / Exemple :


//Algorithme de Oudin trouvé dans Wikipédia et retranscrit en C++ Builder
   //http://fr.wikipedia.org/wiki/Calcul_de_la_date_de_P%C3%A2ques

   int Annee;
   int G, C, C_4;
   int E, H;
   int K, P, Q, I, B, J1, J2, R, M;
   char Paques[11];

   try
   {
      Annee = Edit1->Text.ToInt();
   }
   catch (...)
   {
      Annee = 2008;
   }

   //L'année doit être postérieure à 1583 (apparition du calendrier grégorien)
   if (Annee < 1583)
      Annee = 1583;

   Edit1->Text = AnsiString(Annee);

   G = Annee%19;

   //Année bissextile ?
   C = Annee/100;
   C_4 = C / 4;

   E = (8*C+13)/25;

   //épacte
   H = (19*G + C - C_4 - E + 15)%30;

   K = H/28;
   P = 29/(H+1);
   Q = (21-G)/11;
   I = ( K*P*Q - 1 ) * K + H;
   B = Annee/4;
   B = B + Annee;
   J1 = B + I + 2 + C_4 - C;

   //J2 calcule le jour de la lune pascale
   J2 = J1 % 7;
   R = 28 + I - J2;

   //mois : mars
   M = 3;

   if (R > 31)
   {
      //mois suivant
      R = R-31;
      M++;
   }

   sprintf(Paques, "%02d/%02d/%04d", R, M, Annee);

   Edit2->Text = AnsiString(Paques);

Conclusion :


Je n'ai pas trouvé parmi les sources déjà proposées alors je me lance.
Pas bien compliqué, il est vrai, mais si ça peut aider certains...

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.

Du même auteur (steph12358)