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 | 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)