Bonjour !

Voici un programme qui calcule la date du dimanche de Pâques dans le calendrier grégorien.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
{ Date de Pƒques }
 
PROGRAM DDP;
USES Crt;
 
TYPE
  TDate=RECORD
          Jour:Byte;
          Mois:Byte;
          Annee:Word;
          ToutesLettres:String;
        END;
 
VAR
  Annee:Word;
  Date:TDate;
 
PROCEDURE CalculDateDePaques(a:Word;var ddp:TDate);
 
  { Algorithme d'Oudin }
  var G,C,C4,E,H,K,P,Q,I,B,J1,J2,R:Word;
 
  begin
    ddp.Annee:=a;
 
    G:=a mod 19;
    C:=a div 100;
    C4:=C div 4;
    E:=(8*C+13) div 25;
    H:=(19*G+C-C4-E+15) mod 30;
    K:=H div 28;
    P:=29 div (H+1);
    Q:=(21-G) div 11;
    I:=(K*P*Q-1)*K+H;
    B:=(a div 4)+a;
    J1:=B+I+2+C4-C;
    J2:=J1 mod 7;
    R:=28+I-J2;
 
    if R<32
    then
      begin
        ddp.Jour:=R;
        ddp.Mois:=3;
      end
    else
      begin
        ddp.Jour:=R-31;
        ddp.Mois:=4;
      end;
 
  end;
 
PROCEDURE DateLitterale(var d:TDate);
  const
    sp:Char=Chr(32);
  var
    jstr,mstr,astr:String;
  begin
    Str(d.Jour,jstr);
		if jstr='1' then jstr:='1er';
    case d.Mois of
      3:mstr:='mars' ;
      4:mstr:='avril' ;
    end ;
    Str(d.Annee,astr);
    d.ToutesLettres:=jstr +sp+ mstr +sp+ astr;
  end;
 
BEGIN
  TextBackground(Blue);
  TextColor(Yellow);
  ClrScr;
  Window(4,3,80,25);
  WriteLn('Date de Pƒques dans le calendrier gr‚gorien.');
  WriteLn;
	WriteLn;
  TextColor(White);
  WriteLn('Veuillez entrer une ann‚e … partir de 1583 :');
  WriteLn;
  ReadLn(Annee);
  WriteLn;
  CalculDateDePaques(Annee,Date);
  DateLitterale(Date);
  WriteLn('Le Dimanche de Pƒques est le ',Date.ToutesLettres,'.');
  WriteLn;
  ReadKey;
END.
L'algorithme utilisé est décrit dans le document suivant :

Algorithme d'Oudin pour le calcul de la date de Pâques

P.-S. Suite à la suggestion d'Alcatîz, le programme a été ajouté dans la rubriques "Codes sources" :

Date de Pâques