Lade...
 

CX_SPAN_DATE::SetEndOfPeriod

CX_SPAN_DATE::SetEndOfPeriod

Beschreibung:

Diese Funktion setzt ein neues Enddatum für die Datumsperiode. 

Nach dem Setzen wird intern die neue Periodenlänge errechnet, wobei diese auch einen negativen Wert, wie z.B. "-3 Tage", annehmen kann. Bei einem Datum, das nicht diffus ist, wird die Periodendauer stets in Tagen berechnet. Bei einem diffusen Datum hingegen wird versucht, wiederum ein diffuses Datum des gleichen Typs zu erzeugen. Ist dieses nicht möglich, so wird die Periodendauer ebenfalls in Tagen ausgedrückt. Alternativ hierzu ist es auch möglich, die Periodenlänge mit der Funktion SetDuration direkt zu setzen. Soll die Periodenlänge beim Setzen eines Enddatums nicht verändert werden, ist die Funktion MoveEndOfPeriod zu benutzen. 
Anders als bei SetRealEndOfPeriod wird nicht notwendigerweise das ältere Grenzdatum gesetzt. Bei nicht positiver Periodenlänge ist das Enddatum das jüngere Grenzdatum.

Durch Übergabe eines Null-Objektes wird das Ende gelöscht. Dadurch ist die Datumsperiode dann (halbseitig) unbeschränkt.  

Ist der ursprüngliche Typ eine von-bis Periode (FROM_TO) so wird in Abhängigkeit vom Start und vom ursprünglichen Ende ein neuer Typ gesetzt: Ist der Start kleiner oder gleich dem Ende ergibt sich eine von Periode (FROM); andernfalls eine bis Periode (TO).
Soll der Typ unabhängig von Start und Ende (mit-) gesetzt werden, ist die Funktion SetRealEndOfPeriod zu verwenden.
Alle anderen ursprünglichen Typen bleiben erhalten.

Code-Beispiel:

In dem Beispiel-Programm wird eine Datumsperiode generiert und ihr Enddatum

auf den "3.10.1990" gesetzt. (Das Startdatum bleibt das aktuelle Datum.)

Var(date, sdate)                          // erzeuge die Daten
CreateTransObject(CX_SPAN_DATE) -> sdate
CreateTransObject(CX_DATE) -> date

"3.10.1990" date Put                      // setze das neue Enddatum
date sdate Call(SetEndOfPeriod)

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_SPAN_DATE das Datum(-sobjekt)
Top-1 CX_DATE oder Null das neue Enddatum
Stack(Out) Top - -

Funktionsaufruf: Call(SetEndOfPeriod)