Lade...
 

CX_SPAN_DATE::SetRealDuration

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