Wie drucke ich das Datum von morgen in ConTeXt?

Wie drucke ich das Datum von morgen in ConTeXt?

Ich muss in ConTeXt oft das Datum anzeigen, aber nicht für heute, wie mit angezeigt \date, sondern für den nächsten Tag. Wie drucke ich stattdessen das Datum von morgen?

ZB 7. August 2019

Antwort1

Machen Sie es in Lua. Die Funktionos.time()gibt Ihnen die aktuelle Zeit als POSIX-Zeitstempel, also die Anzahl der Sekunden seit dem 1.1.1970. Addieren Sie die Anzahl der Sekunden eines Tages dazu, um die gleiche Zeit für morgen zu erhalten. Geben Sie dieses Ergebnis ein inos.date. Normalerweise os.dateformatiert es ein Datum in eine Zeichenfolge, aber wenn das Formatargument ist "*t", gibt es eine Tabelle mit dem Zeitstempel zurück, der in sinnvolle Einheiten unterteilt ist. Daraus können Sie Tag, Monat und Jahr extrahieren und in die dateFunktion von ConTeXt einfügen.

Streng genommen funktioniert das nur auf einem POSIX-System, aber ich kenne kein System, das das tutnichtPOSIX-Zeitstempel verwenden. Dieser Ansatz sollte auch an Monats- und Jahresgrenzen und sogar bei Schaltjahren funktionieren. Das einzige Problem sindSchaltsekunden, denn wenn Sie dies genau bei einer Schaltsekunde ausführen, landen Sie möglicherweise am selben Tag statt am nächsten, aber diese kommen nur alle paar Jahre vor.

\starttext

\currentdate

\ctxlua{
    local t = os.date("*t", os.time() + 24*60*60)
    context.date{d = t.day, m = t.month, y = t.year}
}

\stoptext

Bildbeschreibung hier eingeben

verwandte Informationen