CX_GLOBAL_DATETIME
Klassenhierarchie
- CX_CLASS
- CX_TERM
- CX_DATETIME
- CX_GLOBAL_DATETIME
- CX_DATETIME
- CX_TERM
Beschreibung:
Ein globaler Zeitpunkt stellt die Kombination aus einer Datums- und einer Zeitangabe dar, wobei die möglichen Typen aus beiden Klassen beliebig gemischt werden können. Im einfachsten Fall wird ein Tagesdatum mit einem Zeitpunkt kombiniert. Bei der Generierung des Zeitpunktes ist dieser "leer", d.h. er enthält keine Information über eine Zeit oder ein Datum.
Des weiteren enthält ein globaler Zeitpunkt zwei Zeitzonenangaben, mit Hilfe derer z.B. die Fragestellung nach der Zeitdifferenz zwischen zwei Terminen, die z.B. in der Luftfahrt häufig vorkommt, beantwortet werden kann. Stellt Zeitpunkt 1 den "7. März 2018 um 8.00 Uhr in der Zeitzone 1h" und Zeitpunkt 2 den "7. März 2018 um 12.00 in der Zeitzone 2h" dar, so beträgt ihre Differenz (Zeitpunkt 2 - Zeitpunkt 1) "3 Stunden".
Umgekehrt kann aber auch die Fragestellung nach einem "Ziel-Zeitpunkt" auftauchen. Lautet z.B. der Abflugtermin eines Flugzeugs "25. Oktober 2018 um 8.00 in der Zeitzone 1h" und es sind nur die Zeitzone des Zielortes ("11h") und die Flugzeit ("36 Stunden") bekannt, so kann der globale Zeitpunkt der Ankunft berechnet werden. Daher kann ein globaler Zeitpunkt neben der "Start"-Zeitzone auch noch eine "Ziel"-Zeitzone verwalten.
Beispiele:
- Ein "einfacher" globaler Zeitpunkt: "Am 7. März 2018 um 15.20 Uhr in der Zeitzone 1h"
- Ein "Reise-Zeitpunkt": "Am 7. März 2018 2 Stunden ab 15.20 Uhr von der Zeitzone 4h in die Zeitzone -3h"
- Ein sich wiederholender "Reise-Zeitpunkt": "Vom 7. bis zum 9. März 2018 an jedem Tag 2 Stunden ab 15.20 Uhr in der Zeitzone 4h in die Zeitzone -3h"
- Ein periodischer "Reise-Zeitpunkt": "An jedem vorletzten Montag im Monat 2 Stunden ab 8.00 Uhr von der Zeitzone 4h in die Zeitzone -3h"
Code-Beispiel:
In diesem Beispiel-Programm wird der zu der Angabe "8.3.2018 16.00 Uhr Zeitzone 5h" entsprechende Zeitpunkt in der Zeitzone "0h" berechnet.
Var(date, time, gterm) // generiere den globalen Zeitpunktes
CreateTransObject(CX_DATE) -> date "8.3.2018" date Put
CreateTransObject(CX_TIME) -> time "16.00" time Put
CreateTransObject(CX_GLOBAL_DATETIME) -> gterm
"300" gterm Call(SetTimeZone) // setze die neue Zeitzone
date gterm Link(date)
time gterm Link(time)
0 gterm Call(ConvertIntoTimeZone) // liefere den neuen Zeitpunkt
Nach dem Ausführen dieses Skriptes befindet sich der Zeitpunkt "8.3.2018 11.00 Uhr Zeitzone 0h" auf dem Stack.
Operatoren
Operator | Kurzbeschreibung |
---|---|
>, <, = | Vergleiche |
Funktion | MA* | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|---|
ConvertIntoTimeZone | (INTEGER) | OBJECT | Zeitzonen-Umrechnung | |
EndOfTerm | OBJECT | Ende eines Termins | ||
EndTimeZone | * | Ein-/Ausgabesteuerung der Ziel-Zeitzone | ||
GetEndTimeZone | INTEGER | Rückgabe der Ziel-Zeitzone | ||
GetTimeZone | INTEGER | Rückgabe der Zeitzone | ||
SetEndTimeZone | (INTEGER) | Setzen der Ziel-Zeitzone | ||
SetTimeZone | (INTEGER) | Setzen der Zeitzone | ||
StartOfTerm | OBJECT | Start eines Termins | ||
TimeZone | * | Ein-/Ausgabesteuerung der Zeitzone | ||
Comprise | (OBJECT) | OBJECT | Test, ob das Datum des Zeitpunktes ein anderes Datum beinhaltet | |
string | INTEGER | CX_STRING | Liefert die String-Darstellung des Objektes |
* MA = Member-Access-Funktion
Datenfeld | Typ | Referenz-Klasse | I* | Kurzbeschreibung |
---|---|---|---|---|
cycles | SHORT | |||
endTimeZone | SHORT | Ziel-Zeitzone in Minuten (-720 bis 719) | ||
time | POINTER | CX_TIME | Eine beliebige Zeitangabe oder NULL | |
timeZone | SHORT | Zeitzone in Minuten (-720 bis 719) | ||
date | POINTER | CX_DATE | Eine beliebige Datumsangabe oder NULL |
* I = Indizierbares Datenfeld
Modul | Kurzbeschreibung |
---|---|
journey.mod | Reiseplanungs-Modul |