Lade...
 

CX_DATE::NextDate und NextTerm

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

aufgerufen werden, dies wurde aber nur aus Kompatibilitätsgründen implementiert. 

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

liegt. 

Stack
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
Funktionsaufruf: Call(NextTerm)