Calcul date de paques (date mobile)

Soyez le premier à donner votre avis sur cette source.

Snippet vu 8 512 fois - Téléchargée 16 fois

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

Ajouter un commentaire

Commentaires

Messages postés
6
Date d'inscription
vendredi 18 mai 2007
Statut
Membre
Dernière intervention
16 décembre 2008

C'est vrai, mais pas pour les orthodoxes. Voila:

#include <dos.h>
#include <stdio.h>

void main(void)
{
int plus,annee,siecle,jour,mois;
printf("\L'annee:");scanf("%4u",&annee);
if(annee<1600) annee=1600;
plus=10;
if(annee>1600)
{
siecle=annee/100;
plus+=siecle-16-(siecle-16)/4;
}
jour=plus-10+((19*(annee%19)+16)%30)+((2*(annee%4)+4*(annee%7)+6*((19*(annee%19)+16)%30))%7);
mois=4;
if(jour>30)
{
mois++;
jour-=30;
}
printf("Pacques:%02u/%02u/%04u",jour,mois,annee);
}
Messages postés
35
Date d'inscription
lundi 13 octobre 2003
Statut
Membre
Dernière intervention
16 janvier 2009

Salut,

Il existe aussi des sources en VB avec le détail du calcul de la date de Paques suivants plusieurs méthodes :

http://olravet.fr/telechargement.php

et voir aussi le fantastique fichier d'aide de "Calendes" pour découvrir les méthodes de calcul:

http://olravet.fr/AideCalendes/Paques.htm

C'est très intéressant.

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)