CX_DATE
Klassenhierarchie
Beschreibung:
Mit dieser Klasse wird ein Tagesdatum, wie z.B. der "3.10.1990" verwaltet. Dabei besteht die Möglichkeit ein unvollständiges Datum, wie z.B. ein Geburtstag ("5. Mai"), anzugeben. Auch die Eingabe eines unbekannten, d.h. undefinierten, Datums ist möglich. (Jedoch nicht per Put!)
Ein vollständiges Datum kann nur zwischen dem 01.01.1583 und dem 01.01.8202 liegen. Versuche, ein Datum außerhalb dieser festen Grenzen zu setzen, werden mit einem Fehler quittiert.
Zusätzlich kann über SystemObject::SetDateLimit eine weitere Grenze gesetzt werden. Obige feste Grenzen können jedoch nie unter- bzw. überschritten werden.
Hinweis: Ein neues CX_DATE-Objekt wird immer mit dem aktuellen Sitzungsdatum initialisiert. Nur falls dies nicht gesetzt ist, wird das aktuelle Systemdatum verwendet.
Darstellung am Bildschirm:
InstantView® Anweisung: Date
Bei der Initialisierung des Oberflächenobjektes wird das aktuelle Sitzungsdatum übernommen. Neben genauen Angaben können auch unvollständige Daten, wie beispielsweise ein Geburtsdatum ("5. Mai") oder auch ein gänzlich unbekanntes Datum, definiert werden. Dazu muss dem Oberflächenobjekt das Flag DF_ALLOW_INCOMPLETE_DATE und (DF_EUROPEAN_FORMAT oder DF_MILITARY_FORMAT) übergeben werden, um die Verarbeitung solcher Datumsangaben zu erlauben. Die folgende Tabelle zeigt die möglichen Eingaben, die erfolgen können und was für ein Datum daraus resultiert:
Eingabe | Datum | Beschreibung |
---|---|---|
"27.1.1997" | 27.1.1997 | Angabe eines genauen Tagesdatums. |
"27.1.97" | 27.1.1997 | Zu der zweistelligen Jahreszahl wird das aktuelle Basis-Jahrhundert, welches in den eingestellten ortsspezifischen Daten definiert ist, addiert. In diesem Beispiel ist es "19". |
"5.5" bzw. "5.5.?" | 5. Mai | Ein fehlendes Jahr wird nicht mit angegeben oder durch ein in den ortsspezifischen Daten definiertes Zeichen (in diesem Fall "?") ersetzt. |
"5.13" bzw. "?.5.13" | Mai 1913 | Entfällt eine Tagesangabe, so braucht das "Fehlzeichen" nicht angegeben zu werden, wenn die Jahresangabe größer als "12" ist. |
"vorgestern", "gestern, "heute", "morgen", "übermorgen" |
Durch sprachliche Begriffe kann ein Tag beschrieben werden. Die Eingabe wird in den vollständigen absoluten Tag umgesetzt (z.B. "4.8.2001"). Die konkreten Worte richten sich nach der eingestellten Sprache. Auch ist es 198178 möglich, sofern eindeutig, nur den Anfang eines solchen Begriffs zu verwenden. So kann bspw. für "heute" auch "h" verwandt werden. |
|
"" bzw. "?.?.?" | undefiniertes Datum | Ein unbekanntes Datum. |
Im Zusammenhang mit diesem Oberflächenobjekt und bestimmten InstantView®-Anweisungen spielen die zum Objekt gehörigen Flags eine wichtige Rolle, da mit Ihnen die Darstellung des Objektes modifiziert werden kann.
Operatoren / Arithmetik
Operator | Kurzbeschreibung |
---|---|
+, - | Arithmetik |
>, <, = | Vergleiche |
Code-Beispiel:
// Session date interaction Var(date) CreateTransObject(CX_DATE) -> date //-> <current session/system date> "01.03.2020" date Put // change date date SystemObject Call(SetSessionDate) // change session date CreateTransObject(CX_DATE) //-> "01.03.2020" SystemObject Call(SessionDate) //-> "01.03.2020" 10 date Call(AddDay) // set to "11.03.2020" date SystemObject Call(SetSessionDate) // change session date CreateTransObject(CX_DATE) //-> "11.03.2020" NULL SystemObject Call(SetSessionDate) // reset session date CreateTransObject(CX_DATE) -> date //-> <current system date> // Arithmetics Var(birthday, today) CreateTransObject(CX_DATE) -> today CreateTransObject(CX_DATE) -> birthday "24.07.1992" birthday Put today birthday - //-> eg. 10448 Days
Funktion | MA* | Parameter | Rückgabe | Kurzbeschreibung |
---|---|---|---|---|
Einzelangaben: | ||||
DayOfDate | INTEGER | Tag des Datums | ||
MonthOfDate | INTEGER | Monat des Datums | ||
QuarterOfDate | INTEGER | Quartal des Datums | ||
TertianOfDate | INTEGER | Tertial des Datums | ||
YearOfDate | INTEGER | Jahr des Datums | ||
DecadeOfDate | INTEGER | Jahrzehnt des Datums | ||
CenturyOfDate | INTEGER | Jahrhundert des Datums | ||
MilleniumOfDate | INTEGER | Jahrtausend des Datums | ||
Wochenangaben: | ||||
WeekOfDate | INTEGER | Kalenderwoche des Datums | ||
YearOfWeek | INTEGER | Jahr der Kalenderwoche des Datums | ||
DayOfWeek | INTEGER | Wert des Wochentages des Datums | ||
DayInWeek | INTEGER | Wochentag-Position | ||
Monatsangaben: | ||||
DaysInMonth | INTEGER | Tagesanzahl im Monat | ||
Jahresangaben: | ||||
DayOfYear | INTEGER | Tag-Position im Jahr | ||
LeapYear | INTEGER | Zeigt an, ob das Jahr ein Schaltjahr ist | ||
Tagestypangaben: | ||||
IsDateType | INTEGER | INTEGER | Ist das Datum ein "spezieller freier Tag"? | |
IsTerm | INTEGER | Ist das Datum ein Termin? | ||
IsAnniversary | INTEGER | Ist das Datum ein Jahrestag? | ||
IsHoliday | INTEGER | Ist das Datum ein Feiertag? | ||
IsVacation | INTEGER | Ist das Datum ein Ferientag? | ||
IsWorkingday | INTEGER | Ist das Datum ein Werktag? | ||
TypeOfDate | INTEGER | Typ des Datums | ||
Datumsvergleiche: | ||||
Encompassed | INTEGER | "Enthalten in"-Test | ||
Overlap | INTEGER | Überlappungs-Test | ||
Sonstiges: | ||||
AgeInDays | OBJECT, INTEGER | INTEGER | Genaue Differenz zu einem anderen Datum | |
AgeInYMD | OBJECT | VECTOR | Genaue Differenz zu einem anderen Datum | |
AgeInFullYears | OBJECT | OBJECT | Abgerundete Jahresdifferenz zu einem anderen Datum | |
AgeInCommencedYears | OBJECT | OBJECT | Aufgerundete Jahresdifferenz zu einem anderen Datum | |
ExportDateNumber | INTEGER, INTEGER | STRING | Export der Datumszahl als String | |
ValueOfDate | INTEGER | interner Datumswert | ||
Einsprachig: | ||||
WeekdayNameOfDay | STRING | Wochentagsname | ||
ShortWeekdayNameOfDay | STRING | abgekürzter Wochentagsname | ||
NameOfMonth | STRING | Monatsname | ||
ShortNameOfMonth | STRING | abgekürzter Monatsname | ||
NameOfDay | STRING | (Feiertags-)Name des Tages | ||
SpecialNameOfDay | INTEGER | STRING | bestimmter (Feiertags-)Name des Tages | |
Mehrsprachig: | ||||
MLWeekdayNameOfDay | MLSTRING | mehrsprachiger Wochentagsname | ||
MLShortWeekdayNameOfDay | MLSTRING | mehrsprachiger abgekürzter Wochentagsname | ||
MLNameOfMonth | MLSTRING | mehrsprachiger Monatsname | ||
MLShortNameOfMonth | MLSTRING | mehrsprachiger abgekürzter Monatsname | ||
MLNameOfDay | MLSTRING | mehrsprachiger (Feiertags-)Name des Tages | ||
MLSpecialNameOfDay | INTEGER | MLSTRING | bestimmter mehrsprachiger (Feiertags-)Name des Tages | |
Einzelangaben: | ||||
SetDay | INTEGER | Setzen eines neuen Tages | ||
SetMonth | INTEGER | Setzen eines neuen Monats | ||
SetYear | INTEGER | Setzen eines neuen Jahres | ||
ImportDateNumber | STRING, INTEGER | Import einer Datumszahl als String | ||
SetDate | STRING, INTEGER | Import eines Strings | ||
SetToday | Setzen auf Sessiondate bzw. Tagesdatum | |||
SetZero | - | - | setzt das Datum auf Null | |
Addition/Subtraktion: | ||||
AddDay | INTEGER | Tages-Addition | ||
AddNetDay | INTEGER, INTEGER | Tages-Addition mit Bedingung: WORKINGDAY, TERM, ANNIVERSARY, HOLIDAY, VACATION, REST_TERM | ||
AddWeek | INTEGER | Wochen-Addition | ||
AddMonth | INTEGER | Monats-Addition | ||
AddYear | INTEGER | Jahres-Addition | ||
Start/Ende: | ||||
StartOfPeriod | OBJECT | Periodenbeginn | ||
RealStartOfPeriod | OBJECT | "echter" Periodenbeginn | ||
EndOfPeriod | OBJECT | Periodenende | ||
RealEndOfPeriod | OBJECT | "echtes" Periodenende | ||
Tagesdatum: | ||||
Easter | OBJECT | Ostersonntags-Berechnung | ||
Next | INTEGER | OBJECT | Suche nach einem nächsten bestimmten Wochentag | |
Previous | INTEGER | OBJECT | Suche nach einem vorherigen bestimmten Wochentag | |
First | INTEGER | OBJECT | Suche nach dem ersten (bestimmten) Wochentag im Monat | |
Second | INTEGER | OBJECT | Suche nach dem zweiten (bestimmten) Wochentag im Monat | |
Third | INTEGER | OBJECT | Suche nach dem dritten (bestimmten) Wochentag im Monat | |
Fourth | INTEGER | OBJECT | Suche nach dem vierten (bestimmten) Wochentag im Monat | |
Last | INTEGER | OBJECT | Suche nach dem letzten (bestimmten) Wochentag im Monat | |
Day | INTEGER, INTEGER | OBJECT | Berechnet einen anderen Tag im selben Jahr | |
Date | INTEGER, INTEGER, INTEGER | OBJECT | Berechnet ein bestimmtes Datum | |
Perioden: | ||||
Week | OBJECT | Rückgabe der Woche, in der sich das Datum befindet | ||
Month | OBJECT | Rückgabe des Monats, in dem sich das Datum befindet | ||
Quarter | OBJECT | Rückgabe des Quartals, in dem sich das Datum befindet | ||
Tertian | OBJECT | Rückgabe des Tertials, in dem sich das Datum befindet | ||
Year | OBJECT | Rückgabe des Jahres, in dem sich das Datum befindet | ||
Decade | OBJECT | Rückgabe des Jahrzehnts, in dem sich das Datum befindet | ||
Century | OBJECT | Rückgabe des Jahrhunderts, in dem sich das Datum befindet | ||
Millenium | OBJECT | Rückgabe des Jahrtausends, in dem sich das Datum befindet | ||
Sonstiges: | ||||
AbsoluteDayOfYearIndex | INTEGER | Rückgabe der Tagesanzahl vom Jahresanfang bis aktuelles Datum | ||
Duration | OBJECT | Rückgabe der Periodenlänge (Dauer) einer Datumsperiode | ||
EndOfPeriodMA | * | Periodenende | ||
IsDiffuse | INTEGER | testen ob die übergebende Datumsperiode diffuse ist | ||
IsRepeatedDate | (OBJECT) | INTEGER | testen ob die zwei Datum gleich sind (ohne Jahresvergleich) | |
JoinPeriods | (OBJECT) | OBJECT | zwei übergebene Datumsperioden zu einer verbinden | |
NextTerm | (OBJECT) | OBJECT | der Folgetag innerhalb der Datumsperiode | |
OverlappingPeriod | (OBJECT) | OBJECT | die Schnittmenge (Disjunktion) zweier Datumsperioden berechnen | |
SpanDate | (OBJECT, OBJECT) | OBJECT | Erzeugen eine Datumsperiode mit dem übergebenen Start- und EndeDatum | |
StartOfPeriodMA | * | Periodenbeginn | ||
string | INTEGER | CX_STRING | Liefert die String-Darstellung des Objektes |
* MA = Member-Access-Funktion
Datenfeld | Typ | Referenz-Klasse | I* | Kurzbeschreibung |
---|---|---|---|---|
this | CX_DATE | Das Datum. |
* I = Indizierbares Datenfeld
Modul | Kurzbeschreibung |
---|---|
date.mod | Datum Testmodul |
sessiond.mod | Sitzungsdatum Basismodul |
initsdat.mod | Initialisierung Modul |
initbyea.mod | Geschäftsjahr Initialisierung Modul |
initfyea.mod | Gleitzeitjahr Initialisierung Modul |
initsess.mod | Sitzungsdatum Initialisierung Modul |