From c33483b6b5a13a9f2773743e754e3e3b5e22ab1d Mon Sep 17 00:00:00 2001 From: Thorsten Glaser <thorsten.glaser@teckids.org> Date: Fri, 18 Nov 2016 19:37:57 +0100 Subject: [PATCH] [verein.git] easter-based holidays --- pgfeaster.sty | 68 ++++++++++++++++++++++++++++++++++++++++++++++++++ teckidscal.sty | 18 +++++++++++-- 2 files changed, 84 insertions(+), 2 deletions(-) create mode 100644 pgfeaster.sty diff --git a/pgfeaster.sty b/pgfeaster.sty new file mode 100644 index 0000000..917fda0 --- /dev/null +++ b/pgfeaster.sty @@ -0,0 +1,68 @@ +% -*- mode: tex -*- +%- +% Copyright © 2013 +% Qrrbrbirlbel <http://tex.stackexchange.com/users/16595/qrrbrbirlbel> +% +% This content is covered by a CC-BY-SA 3.0 licence and was derived +% from: http://tex.stackexchange.com/a/144186/43807 + +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{pgfeaster}[2013/11/10 1 PGF Easter calculation routine] +\RequirePackage{pgfkeys,pgfcalendar} + +\def\pgfcalendar@Easter#1{% + \begingroup + \count0=#1\relax % Yeah 0 + \count1=\count0% % K 1 + \divide\count1 100 % K 1 + \count2=\count1 % M 3 + \multiply\count2 3 + \advance\count2 3 + \divide\count2 4 % 2 holds (3 * K +3) \ 4 + \count3=\count1 + \multiply\count3 8 + \advance\count3 13 + \divide\count3 -25 + \advance\count3\count2 + \advance\count3 15 % M 3 + \count2-\count2 % S 2 + \advance\count2 2 + \count4=\count0 % A 4 + \divide\count4 19 + \multiply\count4 -19 + \advance\count4\count0 % A 4 + \count1=\count4 % D 1 * + \multiply\count1 19 + \advance\count1\count3 + \count5\count1 + \divide\count1 30 + \multiply\count1 -30 + \advance\count1\count5 % D 1 * + \divide\count4 11 % R 4 * + \advance\count4\count1 + \divide\count4 29 % R 4 * + \advance\count1-\count4 % OG 1 ** + \advance\count1 21 % OG 1 ** + \count3\count0 % SZ 3 * + \divide\count3 4 + \advance\count3\count0 + \advance\count3\count2 + \count4-\count3 + \divide\count3 7 + \multiply\count3 7 + \advance\count3\count4 + \advance\count3 7 % SZ 3 * + \count4-\count3 % OE 4 ** + \advance\count4\count1 + \count3-\count4 + \divide\count4 7 + \multiply\count4 7 + \advance\count4\count3 + \advance\count4 7 % OE 4 ** + \advance\count4\count1 + \pgfcalendardatetojulian{\the\count0-03-\the\count4}\pgfutil@tempcnta + \expandafter\xdef\csname pgfcalendar@Easter@\the\count0\endcsname + {\the\pgfutil@tempcnta}% + \endgroup} + +\endinput diff --git a/teckidscal.sty b/teckidscal.sty index c38c9ac..92882af 100644 --- a/teckidscal.sty +++ b/teckidscal.sty @@ -22,14 +22,13 @@ \NeedsTeXFormat{LaTeX2e} \ProvidesPackage{teckidscal}[2016/11/18 0.1 Teckids e.V. Wandkalender-Utilities] -\RequirePackage{pgfkeys,pgfcalendar} +\RequirePackage{pgfkeys,pgfcalendar,pgfeaster} % Externe Makros: % \teckidscalprep{1}{2016}{12}{2016} % \teckidscalrender % Interne Makros: -% \tkifdef\foo\bar{true}{false} % \tkToJD{2016-12-31} ⇒ \tkjd % \tkFromJD{2456737} ⇒ \tktmY-\tktmM-\tktmD @@ -120,17 +119,32 @@ \tkFromJD{\tkcalbeg}% \@tempcnta=\tktmY% \loop% + \pgfcalendar@Easter\@tempcnta% %% Neujahrstag (01.01.) \tk@mkholiday{\@tempcnta-01-01}{Neujahr}% %% Karfreitag (Ostersonntag - 2) + \tkFromJD{\csname pgfcalendar@Easter@\the\@tempcnta\endcsname}% + \tk@mkholiday{\tktmY-\tktmM-\tktmD+-2}{Karfreitag}% %% Ostersonntag + \tkFromJD{\csname pgfcalendar@Easter@\the\@tempcnta\endcsname}% + \tk@mkholiday{\tktmY-\tktmM-\tktmD}{Ostersonntag}% %% Ostermontag (Ostersonntag + 1) + \tkFromJD{\csname pgfcalendar@Easter@\the\@tempcnta\endcsname}% + \tk@mkholiday{\tktmY-\tktmM-\tktmD+1}{Ostermontag}% %% Tag des Bekenntnisses zu Freiheit und Frieden, sozialer Gerechtigkeit, Völkerversöhnung und Menschenwürde (01.05.) \tk@mkholiday{\@tempcnta-05-01}{Tag des Friedens und der Völkerversöhnung}% %% Christi-Himmelfahrts-Tag (Ostersonntag + 39) + \tkFromJD{\csname pgfcalendar@Easter@\the\@tempcnta\endcsname}% + \tk@mkholiday{\tktmY-\tktmM-\tktmD+39}{Christi Himmelfahrt}% %% Pfingstsonntag (Ostersonntag + 49) + \tkFromJD{\csname pgfcalendar@Easter@\the\@tempcnta\endcsname}% + \tk@mkholiday{\tktmY-\tktmM-\tktmD+49}{Pfingstsonntag}% %% Pfingstmontag (Ostersonntag + 50) + \tkFromJD{\csname pgfcalendar@Easter@\the\@tempcnta\endcsname}% + \tk@mkholiday{\tktmY-\tktmM-\tktmD+50}{Pfingstmontag}% %% Fronleichnamstag (Ostersonntag + 60) + \tkFromJD{\csname pgfcalendar@Easter@\the\@tempcnta\endcsname}% + \tk@mkholiday{\tktmY-\tktmM-\tktmD+60}{Fronleichnam}% %% Tag der Deutschen Einheit (03.10.) \tk@mkholiday{\@tempcnta-10-03}{Tag der Deutschen Einheit}% %% Allerheiligentag (01.11.) -- GitLab