begin process at 2012 05 27 14:02:10
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Date / Heure

 > CALCUL DATE DE PAQUES (DATE MOBILE)

CALCUL DATE DE PAQUES (DATE MOBILE)


 Information sur la source

Note :
Aucune note
Catégorie :Date / Heure Classé sous :paques, férié, date mobile Niveau :Débutant Date de création :18/08/2008 Date de mise à jour :18/08/2008 12:12:31 Vu :4 146

Auteur : steph12358

Ecrire un message privé
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

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

  • //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);
   //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...


 Historique

18 août 2008 12:12:31 :
erreur grammaticale (accord incorrect) :0)

 Sources du même auteur

COPIE AVEC SHFILEOPERATION

 Sources de la même categorie

DATETIMECONVERTER par guill76
Source avec Zip CLASSE DE DATE LOCALISÉE (20 LANGUES) par exar
Source avec Zip CLASSE MOMENT V2.0 par le_duche
Source avec une capture VACCATION (AVEC FONCTION) CONSOLERIE, REMIX GCC par sebman
Source avec Zip Source avec une capture AFFICHER ET DIRE L'HEURE (REPONSE FORUM) par ndubien

Commentaires et avis

Commentaire de meudon le 19/08/2008 09:17:43

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.

Commentaire de Stanel le 03/09/2008 08:37:35

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);
}

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,718 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales