Überarbeitungsverlauf[Zurück]
Klicke auf Einblenden/Ausblenden von Überarbeitungen 2

26 Nov '18, 16:47

cis's gravatar image

cis
9.5k96460491

TikZ calendar: Berechetes Berechnetes Datum als if-Bedingung (Ostern)

[![alt text][1]][1] Ich habe hier einen Algorithmus, der mit pgfmath das Osterdatum berechnet. `\Easter` liefert z.B. `2018-04-01`. Allerdings kann ich das Ergebnis scheints nicht in der Form <br> `\calendar[] if (equals=\Easter)[red];` <br> verwenden. Was muss ich anders machen? <br> Günstig wäre dieses berechnete Osterdatum als `pgfkey` zu haben, weil ich dann die von Ostern abgeleiteten Feiertage berechnen/hervorheben könnte, z.B. `Easter=39` *für Ostertag + 39 Tage = Christi Himmelfahrt*. <br> Wie kann ich dass machen \documentclass[margin=5mm, varwidth]{standalone} \usepackage{tikz} \usetikzlibrary{calendar} \pgfmathtruncatemacro{\year}{2018} \begin{document} % Ostersonntag % https://www.tondering.dk/claus/cal/easter.php \newcommand*{\Easter}[1][\year]{% \Easter[year] \pgfmathtruncatemacro{\G}{mod(#1,19)}% \pgfmathtruncatemacro{\C}{floor(#1/100)}% \pgfmathtruncatemacro{\H}{mod(\C-floor(\C/4)-floor((8*\C+13)/25)+19*\G+15,30)}% \pgfmathtruncatemacro{\I}{\H-floor(\H/28)*(1-floor(29/(\H+1))*floor((21-\G)/11))}% \pgfmathtruncatemacro{\J}{mod(#1+floor(#1/4)+\I+2-\C+floor(\C/4),7)} \pgfmathtruncatemacro{\L}{\I-\J}% \pgfmathtruncatemacro{\eastermonth}{3+floor((\L+40)/44)}% \pgfmathsetmacro{\EasterMonth}{"0\eastermonth"}% \pgfmathtruncatemacro{\easterday}{\L+28-31*floor(\eastermonth/4)}% \pgfmathsetmacro{\EasterDay}{\easterday < 10 ? "0\easterday" : "\easterday"}% % #1-\EasterMonth-\EasterDay% } Easterdate: \Easter, \year-\EasterMonth-\EasterDay \pgfkeys{/pgf/calendar/Easter/.default = 0} \pgfkeys{/pgf/calendar/Easter/.code ={ ? ? ? }} \begin{tikzpicture} \calendar[dates=\year-04-01 to \year-05-last, week list, month label above centered, month text=\%mt \%y- ] if ( % Easter=-3, % Maundy Thursday % Easter=-2, % Good Friday % Easter, % Easter Sunday % Easter=1, % Easter Monday % Easter=39, % Feast of the Ascension % Easter=49, % Pentecost % Easter=50 % Whit Monday )[red] if (equals=2018-4-1) [red]; % geht if (equals=\year-\EasterMonth-\EasterDay) [red] % geht %if (equals=\Easter) [red] % geht nicht. ; \end{tikzpicture} \end{document} [1]: https://texwelt.de/wissen/upfiles/55555555_289.png
Klicke auf Einblenden/Ausblenden von Überarbeitungen 1

26 Nov '18, 16:44

cis's gravatar image

cis
9.5k96460491

TikZ calendar: Berechetes Datum als if-Bedingung (Ostern)

[![alt text][1]][1] Ich habe hier einen Algorithmus, der mit pgfmath das Osterdatum berechnet. `\Easter` liefert z.B. `2018-04-01`. Allerdings kann ich das Ergebnis scheints nicht in der Form <br> `\calendar[] if (equals=\Easter)[red];` <br> verwenden. Was muss ich anders machen? <br> Günstig wäre dieses berechnete Osterdatum als `pgfkey` zu haben, weil ich dann die von Ostern abgeleiteten Feiertage berechnen/hervorheben könnte, z.B. `Easter=39` *für Ostertag + 39 Tage = Christi Himmelfahrt*. <br> Wie kann ich dass machen \documentclass[margin=5mm, varwidth]{standalone} \usepackage{tikz} \usetikzlibrary{calendar} \pgfmathtruncatemacro{\year}{2018} \begin{document} % Ostersonntag % https://www.tondering.dk/claus/cal/easter.php \newcommand*{\Easter}[1][\year]{% \Easter[year] \pgfmathtruncatemacro{\G}{mod(#1,19)}% \pgfmathtruncatemacro{\C}{floor(#1/100)}% \pgfmathtruncatemacro{\H}{mod(\C-floor(\C/4)-floor((8*\C+13)/25)+19*\G+15,30)}% \pgfmathtruncatemacro{\I}{\H-floor(\H/28)*(1-floor(29/(\H+1))*floor((21-\G)/11))}% \pgfmathtruncatemacro{\J}{mod(#1+floor(#1/4)+\I+2-\C+floor(\C/4),7)} \pgfmathtruncatemacro{\L}{\I-\J}% \pgfmathtruncatemacro{\eastermonth}{3+floor((\L+40)/44)}% \pgfmathsetmacro{\EasterMonth}{"0\eastermonth"}% \pgfmathtruncatemacro{\easterday}{\L+28-31*floor(\eastermonth/4)}% \pgfmathsetmacro{\EasterDay}{\easterday < 10 ? "0\easterday" : "\easterday"}% % #1-\EasterMonth-\EasterDay% } Easterdate: \Easter, \year-\EasterMonth-\EasterDay \pgfkeys{/pgf/calendar/Easter/.default = 0} \pgfkeys{/pgf/calendar/Easter/.code ={ ? ? ? }} \begin{tikzpicture} \calendar[dates=\year-04-01 to \year-05-last, week list, month label above centered, month text=\%mt \%y- ] if ( % Easter=-3, % Maundy Thursday % Easter=-2, % Good Friday % Easter, % Easter Sunday % Easter=1, % Easter Monday % Easter=39, % Feast of the Ascension % Easter=49, % Pentecost % Easter=50 % Whit Monday )[red] if (equals=2018-4-1) [red]; % geht if (equals=\year-\EasterMonth-\EasterDay) [red] % geht %if (equals=\Easter) [red] % geht nicht. ; \end{tikzpicture} \end{document} [1]: https://texwelt.de/wissen/upfiles/55555555_289.png

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×