CX_DATE::NextDate / NextTerm
Beschreibung:
Diese Funktionen liefern zu einem gegebenen Datum das Folgedatum. Im
einfachsten Fall passiert das gleiche wie bei AddDay.
Es wird dabei jedoch sichergestellt, dass das Resultat innerhalb der
Datumsperiode bleibt.
Ist das vorläufige Ergebnis nach AddDay noch vor dem Beginn Datumsperiode (RealStartOfPeriod)
wird dieser Beginn zurückgegeben. Ist es bereits nach dem Ende der Datumsperiode (RealEndOfPeriod)
wird NULL zurückgeliefert.
NextTerm unterscheidet sich von NextDate darin, dass das Ergebnis als CX_DATETIME
zurückgeliefert wird.
Da das Tagesdatum in ClassiX-System als eine Datumsperiode
Größe 1 dargestellt wird, kann diese Funktion von einem Objekt Klasse CX_DATE
Code-Beispiel:
In dem Beispiel wird der "4.10.1990" zunächst auf das nächste,
dann auf das übernächste in "3.10.1990 - 5.10.1990" geschoben.
Dabei wird beim zweiten Verschieben die Grenze der Datumsperiode überschritten.Var(date, sdate) // deklariere
Variable
CreateTransObject(CX_DATE) -> date // erzeuge ein
Tagesdatum
CreateTransObject(CX_SPAN_DATE) -> sdate // erzeuge eine
Datumsperiode
"3.10.1990 - 5.10.1990 " sdate Put
// setze die Datumsperiode
"4.10.1990" date Put // setze das
Tagesdatum
date sdate Call(NextDate)
// gehe zum nächsten Datum
Dup sdate Call(NextDate)
// gehe zum übernächsten Datum
Das Ausführen dieses Skriptes erzeugt
erst den Wert "5.10.1990", dann den Wert NULL auf dem Stack,
da das (Folge-)datum "6.10.1990" nicht mehr im Intervall
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(IN) | Top | CX_SPAN_DATE oder CX_DATE | Die Datumsperiode |
Stack(IN) | Top-1 | CX_DATE oder CX_DATETIME | Referenz-Datum bzw. -Term |
Stack(OUT) | Top | CX_DATE oder CX_DATETIME | Folge-Datum bzw. Term |