Datums- & Zeitangaben
Die vollständige temporale Referenz: Kalenderdaten, Dauern-Arithmetik, Uhren, Zeitzonen, Zeitstempel/ISO, Timespan, Video-Timecode, Arbeitskalender und besondere Daten.
Numlex behandelt Datum und Uhrzeit als erstklassige Größen mit einer strengen, begrenzten
Grammatik. Eine Zeile passt entweder exakt zu einem Datums- oder Zeitmuster oder bleibt gewöhnlicher
Text: May 5 + 3 weeks funktioniert, May 5 + 43 ist ein Fehler, und ein einzelnes
Monatswort ist kein Datum. Kalenderarithmetik arbeitet komponentenweise auf dem lokalen
gregorianischen Kalender, sodass Sommerzeitwechsel einen Tag
nicht verschieben können.
Diese Seite ist die vollständige temporale Referenz: Kalenderdaten, Dauern-Arithmetik, Uhren
und Laptime, Zeitzonen, Zeitstempel und ISO 8601, die Timespan-Notation, Video-Timecode und
Frames, Arbeitskalender, besondere Daten, ihre Abhängigkeit von den Einstellungen und die
strengen Fehlerregeln.
Kalenderdaten
<date> [ <sign> <integer> <duration> ... ]
<date> := today | tomorrow | yesterday
| <month> <day>
| <month> <day>, <year>
| <day> <month> [<year>]
<duration> := day(s) | week(s) | month(s) | year(s)
Alle Wörter sind englisch und unabhängig von der Groß-/Kleinschreibung; das Vorzeichen ist +
oder − (ASCII - funktioniert ebenfalls). Monate, abgekürzt und vollständig:
| # | Abkürzungen | Vollständiger Name |
|---|---|---|
| 1 | jan | january |
| 2 | feb | february |
| 3 | mar | march |
| 4 | apr | april |
| 5 | may | may |
| 6 | jun | june |
| 7 | jul | july |
| 8 | aug | august |
| 9 | sep, sept | september |
| 10 | oct | october |
| 11 | nov | november |
| 12 | dec | december |
today, tomorrow und yesterday lösen sich gegen das erfasste lokale Datum auf und
lassen sich mit Dauern kombinieren. Zusammengesetzte Zeiträume werden Kalenderkomponente für
Komponente angewendet: March 12 + 3 weeks 2 days → Apr 4,
May 10 - 1 week 3 days. Jede Komponente ist auf 1.000.000 begrenzt.
Das Ergebnis zeigt das Jahr, wenn die Eingabe eines angibt oder wenn es außerhalb des Eingabejahrs liegt. Der Anker ist lokaler Mittag, sodass DST-Wechsel den Tag nie verschieben.
today → today (per the local calendar)
tomorrow + 1 month
yesterday - 2 weeks
May 5 → May 5 (current year)
May 5, 2026 + 30 days → Jun 4, 2026
5 May 2026
dec 31
Fehler in der Datumssyntax:
- Zeiträume über 1.000.000 sind ein stiller Fehler.
Feb 30sieht wie ein Datum aus, ist aber ungültig – ein stiller Fehler.May 5 + 43(eine Zahl ohne Dauerwort) ist ein Fehler und wird nie zu normaler Arithmetik reduziert.May 5 + 43 days extra– ein Zusatz nach einem gültigen Datum – ist ein Fehler.- Ein einzelnes Monatswort (
may) ist kein Datum; es bleibt Text.
Dauern-Arithmetik
Mehrere feste Zeiteinheiten hintereinander werden als eine Dauer gelesen:
1 h 45 min,1 hour 45 minutes,2 hr 5 mins,1 day 2 hours 30 min,1 min 250 ms,1 week 2 days.- Sichere zusammengeklebte Formen:
1h45min,45min,30sec,500ms,2hr,2wks,1day2hours30min. Zusammengeklebte Aliase stammen nur aus einer Whitelist (ms s sec secs second(s) min mins minute(s) h hr hrs hour(s) day(s) week(s) wk wks); ein einzelnes zusammengeklebtesmist nie Minuten (5m= 5.000.000, nicht Meter), und ein einzelnes zusammengeklebtesswird nicht akzeptiert. - Zusammengesetzte Dauern nutzen die festen Einheiten von
msbisweek. Mittlere Kalendereinheiten (mo,yr,quarter (time)) und fremde Einheiten werden nicht implizit zusammengesetzt:1 m 20 cmist ein Fehler,1 mo 2 dayswird nicht zusammengesetzt.
Komponenten dürfen in beliebiger Reihenfolge stehen und sich wiederholen; die Werte werden addiert. Die Gruppe wird vor Multiplikation oder Division zu einem primären Operanden gebunden:
1 h 30 min / 3 → 30 min (not 1 h 10 min)
(1 h 20 min) × 2 → 2 h 40 min
3 × (1 h 15 min) → 3 h 45 min
1 h 45 min + 30 min → 2 h 15 min
2 hr 10 min - 45 min → 1 h 25 min
1 day 2 h + 90 min → 1 day 3 h 30 min
1 week 2 days - 1 day → 1 week 1 day
2 min 30 sec × 3 → 7 min 30 s
1 min 250 ms + 750 ms → 1 min 1 s
1.5 h + 30 min → 2 h
Eine Dauer bleibt eine echte typisierte Größe (Dimension T¹, eine echte Zeiteinheit, ihr
Wert auf dieser Skala) – kein String und keine dimensionslosen Sekunden. Klammern, unäres
Minus, Variablen und Konstanten mit Zeit funktionieren
(focus time = 1 h 30 min, dann focus time + 15 min = 1 h 45 min), und Dauern lassen
sich wie andere Größen tokenisieren.
Die Ausgabe nutzt eine natürliche kanonische Zerlegung (Wochen, Tage, Stunden, Minuten,
Sekunden; Millisekunden für einen Subsekundenrest), lässt Nullkomponenten weg, normalisiert
Überträge und druckt ein Vorzeichen: 2 h 15 min, 1 day 3 h 30 min, 7 min 30 s,
-30 min, 500 ms. Eine explizite Konvertierung setzt die natürliche Form auf ein
einheitliches Ergebnis zurück: 1 h 30 min to min = 90 min,
1 h 30 min in hours = 1.5 h, 1 h 30 min as seconds = 5400 s.
Geschwindigkeiten und abgeleitete Einheiten werden nie zu einer Dauer (90 km / 3 h =
30 km/h), und die Datumssyntax behält Vorrang (May 5 + 2 days ist ein Datum). Dauern haben
keine Notations- oder Rundungssteuerung pro Antwort.
Uhren und Laptime
Die Uhrsyntax wird vor gemischten Einheiten und Datumszeilen geprüft:
3:30pm + 2 hours 15 minutes → 5:45 pm
3:30pm - 2 hours 15 minutes → 1:15 pm
11:30pm + 45 min → Tomorrow 12:15 am
now + 3 hours 25 minutes → local wall time + 3 h 25 min
01:02:03 + 01:09:54 → 02:11:57 (elapsed time / laptime)
00:00:01.5 + 00:00:01 → 00:00:02.50
7:30am to 8:45pm → 13 h 15 min (interval forward)
4pm to 3am → 11 h
3:30pm as laptime → 15:30:00
Akzeptiert werden h:mm, h:mm:ss, h am/pm und 4pm; AM/PM ist unabhängig von der
Groß-/Kleinschreibung und darf zusammengeklebt oder durch ein Leerzeichen getrennt sein.
Minuten und Sekunden sind 0…59, die 12-Stunden-Uhr ist 1…12 und die 24-Stunden-Uhr ist 0…23
(25:00 ist ein strenger Fehler). Addition und Subtraktion arbeiten auf
Wandkomponenten, sodass ein DST-Wechsel die angeforderten Minuten nie verschiebt und ein
Tageswechsel Yesterday/Today/Tomorrow ausgibt. clock + clock (3:30pm + 3:30pm) ist ein
strenger Fehler; ein bloßes h:mm:ss ohne AM/PM bleibt verstrichene Zeit statt Tageszeit.
Die Anzeige folgt der Region: 12 Stunden für legacy/Nordamerika, 24 Stunden für Europa, der
Stundenzyklus des Gebietsschemas für System. Uhrzeilen sind vom Total ausgeschlossen, haben
keine Notation und Rundung (nur Copy/Delete) und können keine numerischen Tokens werden.
Zeitzonen
time in Paris → current time in the zone
Tokyo time → same, "<place> time" form
date in Vancouver → date in the zone
6pm Sydney in Chicago → 3:00 am
2am PST to GMT → 10:00 am
3pm GMT+8 to Paris → 9:00 am
7:30am LAX to Japan → 11:30 pm
time difference between Chicago and Paris → 7 h
difference between PDT & AEST → 17 h
Eine Quelle wird über den vollständigen Offline-Katalog aufgelöst: IANA-IDs und -Aliase,
Städte (mit dem Qualifier City, CC), Ländernamen, Ländercodes, IATA/ICAO-Codes, feste
Abkürzungen (EST/EDT/CST/CDT/MST/MDT/PST/PDT/AKST/AKDT/HST, AEST/AEDT/ACST/ACDT/AWST/NZST/
NZDT/BST/CET/CEST/EET/EEST/MSK/JST/KST/HKT/SGT) sowie GMT/UTC/GMT±H[:MM]. Die
Wandzeit der Quelle wird an das erfasste Datum in ihrer Zone gebunden, in einen einzigen
absoluten Zeitpunkt umgerechnet und in der Zielzone angezeigt, sodass A → B → A den Zeitpunkt
bewahrt; echte DST-Wechsel werden beachtet, und eine nicht existierende Quellzeit ist ein
strenger Fehler. Ein unbekannter Ort in einer Zeitzonenzeile ist ein strenger Fehler. Ein
bloßes 6pm, Datums- und Geo-Zeilen bleiben in ihren Spuren. Benutzerdefinierte Aliase
(Einstellungen → Dates & Times) überschreiben nur bekannte Namen/IANA-IDs und leben in
der App – nie in .nlx.
Offline-Zeitzonenkatalog
Die App enthält einen Zeitzonenkatalog (etwa 1 MB): IANA-IDs und -Aliase, Städte mit mindestens 100.000 Einwohnern, Land → Hauptstadtzone, IATA/ICAO → Zone. Die Daten stammen aus öffentlichen Quellen (IANA tzdata, GeoNames, airportsdata) und werden vollständig offline genutzt; ein Netzwerk ist nicht nötig.
Zeitstempel und ISO 8601
Die strenge Zeitstempelspur läuft vor Einheitenkonvertierungen und dem normalen Datums-Fallback:
current timestamp → 1,554,112,800 (number from captured now)
April 1, 2019 3:30pm as iso8601 → 2019-04-01T15:30:00+02:00
2019-04-01T15:30:00 to date → Apr 1, 2019 3:30:00 pm
April 1, 2019 to timestamp → 1,554,112,800
1559740303.48 to date → Jun 5, 2019 3:11:43 pm
1733823083000 to date → Dec 10, 2024 10:31:23 am
Sekunden sind Unix-Zeit ab 1970-01-01T00:00:00Z; endliche Bruchwerte sind erlaubt. Die
Millisekundenschwelle: Werte ab 1e12 werden als Millisekunden behandelt (1733823083000 to date). Ein Datum ohne
Uhrzeit, das an to timestamp gebunden wird, ankert auf lokalen Mittag (DST-sicher). Die
ISO-Form akzeptiert Z, ±HH:MM, optionale Sekunden und Bruchteile; ein expliziter Offset
bleibt als Darstellungszone erhalten, sonst wird deine lokale Zone
verwendet. Die ISO-Ausgabe ist yyyy-MM-dd'T'HH:mm:ssXXX; die Datum-Zeit-Ausgabe folgt dem
regionalen 12/24-Stunden-Stil mit fester englischer Reihenfolge
(Apr 1, 2019 3:30 pm). Ungültige, nicht existierende (DST-Lücke) und überlaufende Werte
sind strenge Fehler. Datums-/ISO-Zeilen sind vom Inline- und Footer-Total sowie von der
numerischen Previous-Answer-Kette ausgeschlossen; Tokens darauf bleiben sicher inaktiv.
Timespan
Die Timespan-Notation wird global (Numbers → Default answer format) oder pro Antwort
(Number Format im Kontextmenü) gewählt und gilt nur für Größen der Zeitdimension; jede
Nicht-Zeit-Zahl fällt auf Automatic zurück. Das explizite Suffix
as timespan funktioniert unabhängig von der Einstellung:
5.5 minutes as timespan → 5 min 30 s
4.54 hours as timespan → 4 hours 32 minutes 24 seconds
72 days as timespan → 10 weeks 2 days
3 hours 5 minutes 10 seconds → 3 h 5 min 10 s
3h 5m 10s in seconds → 11,110 s
Der Formatierer zerlegt gierig mit den mittleren Einheiten yr = 365.2425 d und
mo = 30.436875 d, dann Wochen, Tage, Stunden, Minuten, Sekunden und ms; er druckt eine
Nachkommastelle, lässt Nullkomponenten weg und trägt Rundung in die größte Komponente. Die
mittleren yr/mo sind nur lineare Faktoren: Kalenderarithmetik (+ 1 month) nutzt
weiterhin Calendar-Komponenten. Grammatik zusammengeklebter Einheiten: Innerhalb einer
bereits bewiesenen Dauerkette 3h 5m 10s bedeuten m und s Minuten und Sekunden;
einzelne 5m (5.000.000), 5 m (Meter) und 10s bleiben unverändert.
in seconds/in minutes/… setzt auf eine einheitliche Standarddarstellung zurück. Dieselbe
typisierte Grammatik bedient normale Zeilen, Zuweisungen und Answer-Token-Ausdrücke.
Video-Timecode und Frames
Die strenge Timecode-Spur läuft vor der Uhr- und der gemischten Spur:
03:10:20:05 at 30 fps + 50 frames → 03:10:21:25
00:10:20:50 @ 60 fps + 10 minutes → 00:20:20:50
00:30:10:00 @ 24 fps in frames → 43,440 frames
43,440 frames @ 24 fps → 00:30:10:00
03:10:20:05 at 30 fps + 03:10:20:010 → 06:20:40:15
03:10:20:05 at 12 fps - 00:20:35:00 → 02:49:45:05
30 fps × 3 minutes → 5,400 frames
15.6k frames / 24 fps → 650 s
Frames werden exakt gezählt (nie über gerundete Sekunden): fps ist eine ganze Zahl
von 1 bis 1000, und Drop-Frame-Syntax gibt es nicht. Innerhalb eines Timecode-Ausdrucks bedeutet fps Frames pro Sekunde; außerhalb bleibt der
frühere Geschwindigkeitsalias fps = ft/s erhalten. FPS ist bei jeder Operation
erforderlich; Frequenzkonflikte, fehlende fps, Bereichsverletzungen, Frame-Überlauf und
defekte Codes sind strenge Fehler. Das Frame-Feld normalisiert Überträge und wird mit
mindestens zwei Ziffern ausgegeben (die Eingabe :010 wird akzeptiert). Timecode- und
Frame-Zeilen sind vom Total, der Rundung und der numerischen Previous-Answer-Kette
ausgeschlossen; Tokens darauf sind inaktiv.
Arbeitskalender und Feiertage
Ein Arbeitstag ist Montag–Freitag abzüglich der gesetzlichen Feiertage der gewählten Region. Datumsbereiche sind start-exclusive/end-inclusive; ein fehlendes Jahr nutzt das erfasste aktuelle Jahr. Eine nicht unterstützte Region oder ein nicht unterstütztes Jahr ist ein strenger Fehler statt eines stillen Feiertagsauslasses.
workdays in 3 weeks → 15 workdays
10 March to 17 March in workdays → 5 workdays
workdays from April 12 to June 15 → 44 workdays
$500/workday × 4 weeks → $10,000.00
work hours in June → 6 day 16 h
work hours between March 12 and March 25 → 3 day
55h in work days → 6.875 workdays
December 24 + 2 workdays → Dec 29
Aliase: workday(s), work day(s), business day(s), weekday(s); die Abfrage
weekday on <date> und normaler Text werden nicht erfasst. Undatierte Wochen zählen fünf
Arbeitstage pro Woche. Arbeitsstunden sind typisierte Dauern; ein Geldbetrag pro Arbeitstag
behält seine Währungsform; die Stunden pro Arbeitstag stammen aus den Einstellungen (1…24).
Feiertage kommen aus dem integrierten Offline-Katalog (25 Länder, 2019–2035);
es wird kein Netzwerk genutzt, und eine Region oder ein Jahr außerhalb des Katalogs ist ein
Fehler.
Besondere Daten
Diese besonderen Daten sind integriert:
Easter → Apr 20 (captured current year)
Easter 2027 → Mar 28, 2027
Christmas → Dec 25
days until Christmas → 344 days
days until Easter → 95 days
Easter 2027 + 2 days → Mar 30, 2027
Ostern nutzt den verifizierten gregorianischen Computus; das nächste Vorkommen für
days until nimmt das diesjährige Datum, wenn es noch in der Zukunft liegt, sonst das des
Folgejahrs. Ein unbekannter Feiertagsname (days until Festivus) ist ein strenger Fehler,
und Text mit christmas/easter wird nicht erfasst. Weihnachten ist immer der 25. Dezember.
Abhängigkeiten von den Einstellungen
Datum und Uhrzeit werden aus einem pro Blatt erfassten now, dem lokalen
gregorianischen Kalender und der Zone sowie dem regionalen Stundenstil (12/24) berechnet: legacy/Nordamerika ist
12-stündig, West-/Osteuropa ist 24-stündig, System folgt dem Stundenzyklus des Gebietsschemas.
Die persistierten Datums-/Uhrzeit-Einstellungen sind:
- Hours per workday (1…24, Standard 8), genutzt von Arbeitsstunden und Arbeitstag-Konvertierungen.
- Holiday region (Standard
automatic); Arbeitstage überspringen die gesetzlichen Feiertage dieser Region, und nicht unterstützte Regionen schlagen in datierten Arbeitstagsabfragen streng fehl. - Benutzerdefinierte Zeitzonen, bis zu 100, jeweils mit Name und IANA-ID.
Diese Einstellungen sind app-global und gelangen nie in einen .nlx-Export oder in ein Blatt.
Summen, Tokens und Fehler
- Uhr-, Datums-, Zeitstempel-/ISO- und Timecode-Zeilen sind vom Inline- und Footer-Total ausgeschlossen, haben keine Notation und Rundung und treten nicht in die numerische Previous-Answer-Kette ein (Tokens darauf bleiben inaktiv).
- Dauern sind echte typisierte Größen: Sie propagieren durch Variablen, Konstanten und Tokens und verhalten sich in Ausdrücken wie andere Größen.
- Unbekannte Orte, nicht unterstützte Arbeitstagsregionen/-jahre, ungültige oder nicht existierende Daten, ungültige Uhrwerte, fehlende fps und überlaufende Werte sind strenge Fehler – nie eine geratene Zahl.
Verwandte Themen
- Einheiten & Größen – der Einheitenkatalog, abgeleitete Einheiten und Geschwindigkeitsaliase mit denselben Zeiteinheiten-Grenzen.
- Einstellungen & Erscheinungsbild – die Kategorie Dates & Times in der App und die Antwortformat-Einstellung unter Numbers.
- Natürliche Berechnungen – Datums- und Zeitbeispiele in alltäglichen Blättern.