\pgfmathdeclarefunction{DayNoYear} berechnet die Tagesnummer zu einem gegebenen Datum.

alt text

Die erste Zahl 91 ist richtig, doch zeigt es auch noch das ganze Datum an.

Was muss ich einstellen, damit nur die 91 angezeigt wird?

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass[margin=5mm, varwidth]{standalone}
\usepackage{tikz}
\begin{document}
\pgfmathdeclarefunction{DayNoYear}{3}{
%\begingroup % Braucht man das?
\pgfmathtruncatemacro{\a}{#2<3 ? #1-1 : #1}%
\pgfmathtruncatemacro{\b}{floor(\a/4)-floor(\a/100)+floor(\a/400)}%
\pgfmathtruncatemacro{\c}{floor((\a-1)/4)-floor((\a-1)/100)+floor((\a-1)/400)}%
\pgfmathtruncatemacro{\s}{\b-\c}%
\pgfmathtruncatemacro{\e}{#2<3 ? 0 : \s+1}%
\pgfmathtruncatemacro{\f}{#2<3 ?
\day-1+31*(\month-1) : #3+floor((153*(#2-3)+2)/5)+58+\s}%
\pgfmathtruncatemacro{\Dayno}{\f+1}\Dayno
%\pgfmathreturn\f+1
%\pgfmathreturn\Dayno
% \endgroup%
}
Test: \pgfmathparse{DayNoYear(2018,4,1)}\pgfmathresult
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

gefragt 01 Nov '18, 19:07

cis's gravatar image

cis
9.5k96460491
Akzeptiert-Rate: 29%

bearbeitet 01 Nov '18, 19:09

1

Die Zahl kommt von Dayno, das Datum von pgfmathresult. pgfmathreturn erwartet etwas, dass man einer Dimension zuweisen kann, also z.B. \pgfmathreturn\Dayno pt (und ja, das sieht schrecklich aus).

(01 Nov '18, 19:46) Ulrike Fischer

Alternativ geht auch \pgfmathparse{int(\f+1)}%, um das Ergebnis an \pgfmathresult zu übergeben. Dann kannst Du die Definition von \Dayno weglassen.

Du fügst übrigens ein zusätzliches Leerzeichen durch das nicht auskommentierte Zeilenende zu Beginn des Funktionscodes ein.

(01 Nov '18, 20:02) esdd

@esdd: Aber wenn ich das mache "\pgfmathparse{int(\f+1)}" steht nur noch das Datum da "201841", ich will ja nur die Tagesnummer "91". Kannst Du bitte posten, wie Du das meinst?

(01 Nov '18, 20:41) cis

Eine Möglichkeit:

Öffne in Overleaf
Code, hier editierbar zum Übersetzen:
\documentclass[margin=5mm, varwidth]{standalone}
\usepackage{tikz}
\pgfmathdeclarefunction{DayNoYear}{3}{% <- Zeilenende auskommentiert
\pgfmathtruncatemacro{\a}{#2<3 ? #1-1 : #1}%
\pgfmathtruncatemacro{\b}{floor(\a/4)-floor(\a/100)+floor(\a/400)}%
\pgfmathtruncatemacro{\c}{floor((\a-1)/4)-floor((\a-1)/100)+floor((\a-1)/400)}%
\pgfmathtruncatemacro{\s}{\b-\c}%
\pgfmathtruncatemacro{\e}{#2<3 ? 0 : \s+1}%
\pgfmathtruncatemacro{\f}{#2<3 ?
\day-1+31*(\month-1) : #3+floor((153*(#2-3)+2)/5)+58+\s}%
\pgfmathparse{int(\f+1)}% <- geändert
}
\begin{document}
Test: \pgfmathparse{DayNoYear(2018,4,1)}\pgfmathresult
\end{document}
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

alt text

Permanenter link

beantwortet 01 Nov '18, 22:47

esdd's gravatar image

esdd
17.8k294257
Akzeptiert-Rate: 62%

Oh, dieses group musste weg. Dann gehts.

(01 Nov '18, 23:47) cis
Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×13

gestellte Frage: 01 Nov '18, 19:07

Frage wurde gesehen: 4,115 Mal

zuletzt geändert: 01 Nov '18, 23:47

Willkommen, erstes Mal hier? Schau mal unter FAQ!

×