\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
\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}

gefragt 01 Nov '18, 19:07

cis's gravatar image

cis
9.4k23240444
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
\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}

alt text

Permanenter link

beantwortet 01 Nov '18, 22:47

esdd's gravatar image

esdd
15.7k144055
Akzeptiert-Rate: 62%

Oh, dieses group musste weg. Dann gehts.

(01 Nov '18, 23:47) cis
Deine Antwort
Vorschau umschalten

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

Markdown-Grundlagen

  • *kursiv* oder _kursiv_
  • **Fett** oder __Fett__
  • Link:[Text](http://url.com/ "Titel")
  • Bild?![alt Text](/path/img.jpg "Titel")
  • nummerierte Liste: 1. Foo 2. Bar
  • zum Hinzufügen ein Zeilenumbruchs fügen Sie einfach zwei Leerzeichen an die Stelle an der die neue Linie sein soll.
  • grundlegende HTML-Tags werden ebenfalls unterstützt

Frage-Themen:

×12

gestellte Frage: 01 Nov '18, 19:07

Frage wurde gesehen: 1,348 Mal

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