Datum und Zeit
Die Objekte für Zeit und Datum sind, ähnlich zu den atomaren Objekten, auch unveränderlich.
Wird z.B. der Monat eines Datums verändert, so entsteht ein neues Objekt.
Datum
Ein Datum-Objekt wird mit dem Objekt-Typ "Date" erzeugt. Dies kann mit oder ohne Argumente erfolgen:
Date # Das heutige Datum
Date() # Identisch mit der Zeile davor
Date( 2020, 3, 1 ) # Objekt für den 1.3.2020
Mit einem String können verschiedene Formate übergeben werden
Date( "01.03.2020" )
Date( "2020-03-01" )
Auslesen einzelner Werte:
d = Date
d.getDay.print
d.getMonth.print
d.getYear.print
Da mathematische Zeichen in JayMo auch nur Funktionen sind, wenn auch mit anderer Priorität, ist sogar folgendes möglich:
# Gibt das Datum von heute plus 5 Tage aus
Print Date + 5
# Die Variable 'd' bekommt hier das Datum von vorgestern zugewiesen
d = Date - 2
# Prüft, ob das heutige Datum größer oder gleich dem 1.1.2021 ist
Date >= Date( 2021, 1, 1 )
Zudem existieren natürlich auch alphanumerische Funktionen:
# Erzeugt ein neues Objekt von heute plus 3 Monate
Date.addMonth( 3 )
# Erzeugt ein neues Objekt mit heutigem Tag und Monat, allerdings im Jahr 2035
Date.setYear( 2035 )
Weitere Funktionen sind in der Referenz aufgelistet.
Zeit
Für eine Uhrzeit wird das Objekt "Time" verwendet:
# Objekt für die aktuelle Uhrzeit
Time
# Objekt für 12:34:56 Uhr
Time( 12, 34, 56 )
Das Auslesen erfolgt ähnlich zu Date:
t = Time
t.getHours.print
t.getMinutes.print
t.getSeconds.print
Ansonsten wird ein Time-Objekt ähnlich wie Date oder DateTime verwendet.
Zeitpunkt
Für Zeitpunkte existiert der Typ DateTime (= Datum + Zeit):
# Objekt für den aktuellen Zeitpunkt
DateTime
# Zeitpunkt für den 21.01.2020, 11:22:33 Uhr
DateTime( 2020, 1, 21, 11, 22, 33 )
Hier ist es auch möglich, eine Kopie vom Datum oder der Uhrzeit zu erhalten:
# Gibt ein Date-Objekt zurück
DateTime.getDate
# Gibt ein Time-Objekt zurück
DateTime.getTime
Das Auslesen der einzelnen Werte erfolgt über die jeweilige Funktion:
dt = DateTime
dt.getYear
dt.getMonth
dt.getDay
dt.getHour
dt.getMinutes
dt.getSeconds
Formatierte Ausgabe
Date, Time und DateTime lassen sich mit der Funktion ".format" individuell formatieren. Dafür wird ein Format-String mit Platzhaltern verwendet, die durch den jeweiligen Wert ersetzt werden.
Info:
Großbuchstaben stehen für Datum-Werte (Tag, Monat, ...), Kleinbuchstaben für Zeit-Werte (Stunde, Minute, ...)
Zeichen | Attribut | Länge | Beispiel |
---|---|---|---|
Y | Jahr | 4 | 2020 |
YY | Jahr | 2 | 20 |
YYYY | Jahr | 4 | 2020 |
M | Monat | 1-2 | 1 |
MM | Monat | 2 | 01 |
D | Tag | 1-2 | 5 |
DD | Tag | 2 | 05 |
hh | Stunden (24 Std.-Format) | 2 | 08 |
h | Stunden (24 Std.-Format) | 1-2 | 8 |
ii | Stunden (12 Std.-Format) | 2 | 11 |
i | Stunden (12 Std.-Format) | 1-2 | 8 |
mm | Minuten | 2 | 09 |
m | Minuten | 1-2 | 9 |
ss | Sekunden | 2 | 07 |
s | Sekunden | 1-2 | 7 |
p | AM/PM | 2 | PM |
Damit ein Zeichen NICHT ersetzt wird, wird vor dem jeweiligen Buchstaben eine Tilde ('~') als Escape-Zeichen eingefügt:
Date.add( 1 ).format( "~Morgen ist der: DD.MM." ).print