Gladir.com - Modula-2 - Temps - Date de la Pâque

Dans les pays occidentaux, il est inévitable de calculer la date de la Pâque chrétienne. Vous trouverez la réponse que vous souhaitez, à l'aide du code source Modula-2 suivant:
MODULE dateofeaster;

FROM InOut IMPORT WriteString, WriteLn;
FROM SWholeIO IMPORT WriteInt;

TYPE
   STRING = ARRAY[0..255] OF CHAR;

PROCEDURE DateOfEaster(year:INTEGER;VAR month,day:INTEGER);
VAR
 g,c,x,z,d,e,n:INTEGER;
BEGIN
 g := (year MOD 19) + 1;
 c := INT(year / 100) + 1;
 x := INT((3 * c) / 4) - 12;
 z := INT((8 * c + 5) / 25) - 5;
 d := INT((5 * year) / 4) - x - 10;
 e := INT(11 * g + 20 + z - x) MOD 30;
 IF e < 0 THEN
  e := e + 30;
 END;
 IF ((e = 25) AND (g > 11)) OR (e = 24) THEN
  e := e + 1;
 END;
 n := 44 - e;
 IF n < 21 THEN
  n := n + 30;
 END;
 n := n + 7 - INT((d + n) MOD 7);
 IF n > 31 THEN
  month := 4;
  day := n - 31;
 ELSE
  month := 3;
  day := n;
 END;
END DateOfEaster;

PROCEDURE MonthName(month:INTEGER):STRING;BEGIN
  CASE month OF
    1: RETURN "Janvier"
|   2: RETURN "Février"
|   3: RETURN "Mars"
|   4: RETURN "Avril"
|   5: RETURN "Mai"
|   6: RETURN "Juin"
|   7: RETURN "Juillet"
|   8: RETURN "Août"
|   9: RETURN "Septembre"
|   10: RETURN "Octobre"
|   11: RETURN "Novembre"
|   12: RETURN "Décembre"
  END;
END MonthName;

VAR
 year,month,day:INTEGER;

BEGIN
 FOR year := 2000 TO 2014 DO
  DateOfEaster(year, month, day);
  WriteString("Pâque en l'année ");
  WriteInt(year,4);
  WriteString(" est le jour ");
  WriteInt(day,2);
  WriteString(" du mois ");
  WriteString(MonthName(month));
  WriteLn;
 END;
END dateofeaster.
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: Mardi, le 7 février 2006