[cstex] Velikonoce
Va'clav Studeny'
Vclv at centrum.cz
Fri Feb 6 14:56:00 CET 2009
Zrovna jsme se zaèal probírat svou pozùstalostí z
roku 1995. Budou velikonoce a napadlo mne, e by
se nìkomu mohlo hodit, nebo líbit makro, kterému
se pøedá jeden argument: rok, a ono vysází datum
hodu Boího velikonoèního (první nedìle po prvním
jarním úplòku na Jeruzalémském poledníku).
Algoritmus je od známeho pøedknutovského
uivatele TeXu Fridricha Gause, a tady to je
implementován (pro obecné pouití asi trochu
neikovnì) tak, e èíslo roku gregoriánkého
kalendáøe se dosadí do promìnné \rok a datum
Boího hodu je pak v promìnných \den \mìsíc, ale
pøepat to na makro s parametrem je u malikost.
Zdravím s blíícím svátkem lampiónù svátku
lampiónù (9. 2., 15. den, tj. (pøibl.) první úplnìk v novém, roce)
Václav Studený
% Master: Kalendarkun(19).TeX
\newcount\i
\newcount\j
\newcount\k
\newcount\l
\newcount\m\m=24
\newcount\n\n=5% do roku 2099(vcetne)
\newcount\Den
\newcount\Mesic
\newcount\Rok
\newcount\pom
\def\mod#1#2#3{\pom=#1\divide\pom by #2 \multiply
\pom by #2 \advance\pom by -#1\multiply
\pom by -1\relax #3=\pom}
\def\Velikonoce{%
\ifnum \Rok>1899 \m=24\n=5 \fi%\fi \ifnum\Rok<2200
\ifnum \Rok>2199 \m=25\n=0 \fi%\fi \ifnum\Rok<2300
\ifnum \Rok>2299 \m=26\n=1 \fi%\fi \ifnum\Rok<2400
\ifnum \Rok>2399 \ifnum\Rok<2500 \m=25\n=1 \fi\fi
\mod\Rok {19}\i\relax
\mod\Rok {4}\j\relax
\mod\Rok {7}\k\relax
\multiply\i by 19\relax% 19*\i
\multiply\j by 2\relax
\multiply \k by 4\relax
\advance\m by \i\relax %\m=19*\i+\m
\mod\m{30}\m%\m=(19*\i+m) mod 30
\l=\m
\multiply\l by 6\relax
\advance\n by\l\relax%\n=\n+6*\m
\advance\n by\j\relax%\n=\n+6*\m+2*\j
\advance\n by\k\relax%\n=\n+2*\j+4*\k+6*\m
\mod\n 7\n%\n=(\n+2*\j+\4*\k+6*\m) mod 7
\divide\l by 6\relax
\advance\l by \n\relax
\ifnum \l<10\relax \advance\l by 22\relax \Den=\l \Mesic=3\relax
\else
\advance\l by -9
\relax\ifnum\l>25 \advance\l by -7\fi \Den=\l \Mesic=4\relax
\fi
\ifnum\m=28 \ifnum\n=6 \ifnum\i>10 \Den=18\relax
\Mesic=4\relax \fi\fi\fi %vyjimky
\ifnum\m=29 \ifnum\n=6 \Den=19\relax \Mesic=4\relax \fi\fi %vyjimky
}
\Rok=2008
\Velikonoce
\number\Den. \number\Mesic. \number\Rok
\end
More information about the csTeX
mailing list