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