% ---------------------------------------------------------------------------- %
%% \file paques.tex
%% \author Sebastien Beaugrand
%% \sa http://beaugrand.chez.com/
%% \copyright CeCILL 2.1 Free Software license
% ---------------------------------------------------------------------------- %
% https://www.tondering.dk/claus/cal/easter.php
% based in part on the algorithm of Oudin (1940)
% ---------------------------------------------------------------------------- %
\def\modulo#1#2{%
\count0=#1
\divide\count0 by #2
\multiply\count0 by #2
\multiply\count0 by -1
\advance\count0 by #1
}
\newcommand\paques{%
\newcount\pg
\modulo{\annee}{19} \pg=\count0
\newcount\ph \ph=\pg \multiply\ph19 \advance\ph24
\modulo{\ph}{30} \ph=\count0
\newcount\pi \pi=-\ph \divide\pi28
\advance\pi\ph
\newcount\pj \pj=\annee \divide\pj4
\advance\pj\annee \advance\pj\pi \advance\pj-13
\modulo{\pj}{7} \pj=\count0
% Jour de Pâques
\newcount\pl \pl=\pi \advance\pl-\pj
% Lundi de Pâques
\advance\pl1
% Mois du lundi de Pâques
\newcount\paquesmois \paquesmois=\pl \advance\paquesmois40
\divide\paquesmois44 \advance\paquesmois3
% Jour du lundi de Pâques
\newcount\paquesjour \paquesjour=\paquesmois \divide\paquesjour4
\multiply\paquesjour31 \paquesjour=-\paquesjour \advance\paquesjour\pl
\advance\paquesjour28
}
\newcommand\ascension{%
\newcount\ascensmois \ascensmois=\paquesmois \advance\ascensmois1
\newcount\ascensjour \ascensjour=\paquesjour
\advance\ascensjour\paquesmois \advance\ascensjour4
\newcount\nbrjours \nbrjours=\ascensmois \advance\nbrjours26
\ifnum\ascensjour>\nbrjours
\advance\ascensjour-\nbrjours \advance\ascensmois1
\fi
}
\newcommand\pentecote{%
\newcount\pentecmois \pentecmois=\ascensmois
\newcount\pentecjour \pentecjour=\ascensjour \advance\pentecjour11
\nbrjours=\pentecmois \advance\nbrjours26
\ifnum\pentecjour>\nbrjours
\advance\pentecjour-\nbrjours \advance\pentecmois1
\fi
}