Section courante

A propos

Section administrative du site

Parmi toutes les fêtes du calendrier chrétien, Pâques occupe une place tout à fait particulière en raison de son importance religieuse, mais aussi parce que sa date varie d'une année à l'autre. Contrairement à Noël, qui est célébré chaque année à une date fixe, Pâques est une fête mobile dont le calcul repose sur des règles astronomiques et calendaires relativement complexes. Dans la plupart des pays occidentaux, la détermination de cette date revêt une importance particulière puisqu'elle influence également plusieurs autres fêtes religieuses et jours fériés, tels que le Vendredi saint, le Lundi de Pâques, l'Ascension et la Pentecôte. Historiquement, le calcul de la date de Pâques a constitué un défi considérable pour les astronomes, les mathématiciens et les autorités religieuses, car il dépend à la fois du cycle solaire, du cycle lunaire et des règles établies par l'Église. Selon la tradition chrétienne occidentale, Pâques est célébrée le premier dimanche suivant la première pleine lune qui suit l'équinoxe de printemps. Cette définition apparemment simple cache en réalité une série de calculs permettant de déterminer avec précision le jour exact de la célébration pour chaque année.

Afin d'automatiser ce calcul, plusieurs algorithmes ont été développés au fil des siècles. Le programme QuickBASIC/QBasic présenté ci-dessous met en oeuvre l'un de ces procédés en utilisant uniquement des opérations arithmétiques sur l'année fournie en entrée. À partir de diverses valeurs intermédiaires liées aux cycles lunaires et au calendrier grégorien, l'algorithme détermine automatiquement le mois et le jour correspondant à la fête de Pâques. Une fonction complémentaire permet ensuite de convertir le numéro du mois en son nom français afin d'obtenir un résultat facilement lisible. Dans l'exemple proposé, le programme calcule successivement la date de Pâques pour les années comprises entre 2000 et 2014, illustrant clairement la variation de cette fête d'une année à l'autre. On constate ainsi que Pâques peut être célébrée aussi bien à la fin du mois de mars qu'au cours du mois d'avril. Cet exemple constitue une excellente démonstration de l'application des mathématiques et des algorithmes à un problème concret de calendrier. Il montre également comment des calculs apparemment complexes peuvent être traduits en quelques lignes de code afin de produire automatiquement des résultats précis et fiables, utiles aussi bien dans les logiciels de gestion de calendriers que dans les applications historiques, religieuses ou éducatives.

Vous trouverez la réponse que vous souhaitez, à l'aide du code source QuickBASIC/QBasic suivant :

  1. DECLARE SUB DateOfEaster (year AS INTEGER, month AS INTEGER, day AS INTEGER)
  2. DECLARE FUNCTION MonthName$ (month AS INTEGER)
  3.     
  4.  
  5. FOR year% = 2000 TO 2014
  6.     CALL DateOfEaster(year%, month%, day%)
  7.     PRINT "Pâque en l'année " + STR$(year%) + " est le jour " + STR$(day%) + " du mois " + MonthName$(month%)
  8. NEXT
  9.  
  10. SUB DateOfEaster (year AS INTEGER, month AS INTEGER, day AS INTEGER)
  11.         g% = (year MOD 19) + 1
  12.         c% = INT(year / 100) + 1
  13.         x% = INT((3 * c%) / 4) - 12
  14.         z% = INT((8 * c% + 5) / 25) - 5
  15.         d% = INT((5 * year) / 4) - x% - 10
  16.         e% = INT(11 * g% + 20 + z% - x%) MOD 30
  17.         IF e% < 0 THEN e% = e% + 30
  18.         IF ((e% = 25) AND (g% > 11)) OR (e% = 24) THEN e% = e% + 1
  19.         n% = 44 - e%
  20.         IF n% < 21 THEN n% = n% + 30
  21.         n% = n% + 7 - INT((d% + n%) MOD 7)
  22.         IF n% > 31 THEN
  23.            month = 4
  24.            day = n% - 31
  25.         ELSE
  26.            month = 3
  27.            day = n%
  28.         END IF
  29. END SUB
  30.  
  31. FUNCTION MonthName$ (month AS INTEGER)
  32.    SELECT CASE month
  33.     CASE 1: MonthName$ = "Janvier"
  34.     CASE 2: MonthName$ = "Février"
  35.     CASE 3: MonthName$ = "Mars"
  36.     CASE 4: MonthName$ = "Avril"
  37.     CASE 5: MonthName$ = "Mai"
  38.     CASE 6: MonthName$ = "Juin"
  39.     CASE 7: MonthName$ = "Juillet"
  40.     CASE 8: MonthName$ = "Août"
  41.     CASE 9: MonthName$ = "Septembre"
  42.     CASE 10: MonthName$ = "Octobre"
  43.     CASE 11: MonthName$ = "Novembre"
  44.     CASE 12: MonthName$ = "Décembre"
  45.    END SELECT
  46. END FUNCTION

on obtiendra le résultat suivant :

Pâque en l'année 2000 est le jour 23 du mois Avril
Pâque en l'année 2001 est le jour 15 du mois Avril
Pâque en l'année 2002 est le jour 31 du mois Mars
Pâque en l'année 2003 est le jour 20 du mois Avril
Pâque en l'année 2004 est le jour 11 du mois Avril
Pâque en l'année 2005 est le jour 27 du mois Mars
Pâque en l'année 2006 est le jour 16 du mois Avril
Pâque en l'année 2007 est le jour 8 du mois Avril
Pâque en l'année 2008 est le jour 23 du mois Mars
Pâque en l'année 2009 est le jour 12 du mois Avril
Pâque en l'année 2010 est le jour 4 du mois Avril
Pâque en l'année 2011 est le jour 24 du mois Avril
Pâque en l'année 2012 est le jour 8 du mois Avril
Pâque en l'année 2013 est le jour 31 du mois Mars
Pâque en l'année 2014 est le jour 20 du mois Avril


Dernière mise à jour : Mercredi, le 14 septembre 2016