CX_SPAN_DATE::SetRealDuration
Beschreibung:
Diese Funktion ermöglicht das Setzen der Duration mit einem positiven Wert
unter Beibehaltung des bestehenden Vorzeichens.
Ist die Periodenlänge der Datumsperiode z.B. nicht
positiv (Ende vor Start), so kann sie mit dieser Funktion so auf eine
"echte" Dauer von 3 Tagen gesetzt werden, dass sie nicht positiv
bleibt (Duration "-1 Tag"). Insbesondere liefert die Funktion RealDuration
immer genau den Wert der direkt zuvor mit SetRealDuration gesetzt wurde, sofern
der übergebende Wert positiv war.
Auch die Übergabe einer nicht positiven Periodenlänge an diese Funktion ist möglich.
Dies kann im engeren Sinne natürlich keine "echte" Dauer sein. Diese
erweiterte Funktion ist jedoch praktisch, wenn der Wert zuvor berechnet wurde,
z.B. auslesen aus einer anderen Datumsperiode.
Wie bei der Funktion SetDuration kann die
Datumsperiode auch mit SetRealDuration diffus
gesetzt werden, also die Dauer auf einer gröberen Basis als Tage angegeben
sein.
Code-Beispiel:
In dem Beispiel-Programm wird die "echte" Periodenlänge auf 3 Tage
gesetzt, die Periodenlänge ist aber negativ
Var(sdate)
// deklariere Variable
CreateTransObject(CX_SPAN_DATE) -> sdate // erzeuge eine Datumsperiode
"10.10.1990 - 1.10.1990" sdate Put // setze
die Datumsperiode
3days sdate Call(SetRealDuration)
// setze die Länge auf -1 Tage
sdate Call(RealDuration)
// liefert "echte" Länge zurück
Der Rückgabewert ist "3 Tage".
Stack | Position | Objekttyp | Kurzbeschreibung |
---|---|---|---|
Stack(In) | Top | CX_SPAN_DATE | das Datum(-sobjekt) |
Top-1 | CX_VALUE | die neue Periodenlänge | |
Stack(Out) | Top | - | - |
Funktionsaufruf: Call(SetRealDuration)