Lade...
 

CX_GLOBAL_DATETIME - Globaler Zeitpunkt

CX_GLOBAL_DATETIME

Klassenhierarchie
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:   

  1. Ein "einfacher" globaler Zeitpunkt: "Am 7. März 2018 um 15.20 Uhr in der Zeitzone 1h"  
  2. Ein "Reise-Zeitpunkt": "Am 7. März 2018 2 Stunden ab 15.20 Uhr von der Zeitzone 4h in die Zeitzone -3h"  
  3. 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"  
  4. 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

 

Methodenverzeichnis (MDI)
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

 

Datenverzeichnis (DDI)
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

 

Verwendung in AppsWH
Modul Kurzbeschreibung
journey.mod Reiseplanungs-Modul