Die Frage ist zum Archivieren gedacht, kein Support benötigt. Weitere Antworten im Sinne von Vereinfachungs- oder Verbesserungsvorschlägen sind jedoch sehr willkommen! Evtl. antworte ich auch selbst.

Wie berechne ich die Kalenderwoche?

Idealerweise so, dass man bei Bedarf auch bei entsprechenden Kalenderpaketen wie pgfcalendar.sty einsetzen kann.

gefragt 18 Dez '18, 08:55

cis's gravatar image

cis
9.5k57442491
Akzeptiert-Rate: 29%


In LuaLaTeX kann man die eingebaute os.date-Funktion verwenden. Um die Kalenderwoche zu erhalten muss man als Format %W verwenden. Das Format ist dasselbe wie in der C-Funktion strftime.

Öffne in Overleaf
\documentclass{article}
\usepackage{luacode}

\begin{document}

\luaexec{
tex.sprint(os.date("\%W", os.time{
  day = \the\day,
  month = \the\month,
  year = \the\year
}))
}

\end{document}
Permanenter link

beantwortet 18 Dez '18, 10:12

Henri's gravatar image

Henri
15.7k103843
Akzeptiert-Rate: 46%

bearbeitet 18 Dez '18, 10:21

1

Im deutschen Sprachraum wäre %W (Woche beginnt an einem Montag) vielleicht etwas üblicher als %U (Woche beginnt an einem Sonntag). Alternativ gibt es auch %V für ISO-Wochen, aber das habe ich bei mir nicht zum Fliegen bekommen. (Aha: %V ist neu in C99 (steht so recht deutlich auf der verlinkten Seite), es scheint als würde Lua diese neuen Formatbuchstaben nicht unterstützen.)

(18 Dez '18, 10:20) moewe

Nachdem ich über Add week day to calendar gestolpert bin, habe ich mich mal bemüht und die Wochenummer nach ISO-Standard im PGFCalendar-System zu implementieren. Mittlerweile ist das Teil meines TikZ-ext-Paketes.

In der einfachsten Form reicht das folgende Dokument

\input pgfkeys.tex
\input pgfcalendar-ext.tex
\newcount\KalenderJulianischeZahl
\newcount\KalenderWoche
\pgfcalendardatetojulian{2022-12-14}{\KalenderJulianischeZahl}
\pgfcalendarjulianyeartoweek{\KalenderJulianischeZahl}{2022}{\KalenderWoche}

Das Datum 14.12.2022 liegt in der Kalenderwoche \the\KalenderWoche.
\bye

(Ja, es ist etwas komisch, dass man die Jahreszahl nochmal angeben muss, obwohl man sie anhand des der Julianischen Zahl wieder ermitteln kann, aber ich habe es mir einfach gemacht und gehe davon aus, dass man eh immer schon die Jahreszahl parat hat. Intern muss es manchmal schauen, welche Kalenderwoche der Tag in einem anderen Jahr, wenn das Datum in die Woche des Jahreswechsel fällt.)

Dazu gibt es auch den Test week = <num>, der testet, ob das Datum in der Kalenderwoche <num> liegt.
Weiterhin gibt es dann auch die Shortcuts

  • n- (kürzeste, also keine führende Null),
  • n= (keine führende Null, aber der Platz dafür wird reserviert) und
  • n0 (führende Null).

Entsprechend gibt es auch \pgfcalendarcurrentweek (wird von den Shorthands verwendet) und \pgfcalendarifdateweek (wird von dem Test verwendet).


Mit der dazu passenden ext.calendar-plus-Library kann man das natürlich auch in TikZ verwenden. Hier mal das Beispiel aus dem Paket-Manual.

\documentclass[tikz]{standalone}
\usepackage{tikz}
\usetikzlibrary{ext.calendar-plus}
\begin{document}
\tikz
  \calendar [
    week list,
    month label above centered,
    dates=2022-07-01 to 2022-07-31,
    week label left,
    every week/.append style={blue!50,font=\sffamily}];
\end{document}

Ergebnis

alt text

Permanenter link

beantwortet 14 Dez '22, 23:51

Qrrbrbirlbel's gravatar image

Qrrbrbirlbel
2.9k2815
Akzeptiert-Rate: 53%

(Das Manual lügt derzeit noch, was die TikZ-Erweiterung angeht, aber die Kalenderwoche ist davon nicht betroffen.)

(14 Dez '22, 23:52) Qrrbrbirlbel
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
×10

gestellte Frage: 18 Dez '18, 08:55

Frage wurde gesehen: 3,446 Mal

zuletzt geändert: 14 Dez '22, 23:52