Lade...
 

CX_SPAN_DATE::NetDuration

CX_SPAN_DATE::NetDuration

Beschreibung:

Diese Funktion liefert die Periodenlänge einer Datumsperiode

in der jeweiligem Netto-Typ. Hierfür muss die Datumsperiode nicht in diesem Netto-Typ gespeichert sein. Wird eine anderer als der gespeicherte Netto-Typ erfragt, wird dieser berechnet. Dabei bleibt die Datumsperiode aber unverändert. Ein Speichern der berechneten Netto-Dauer (inkl. Netto-Typ, durch anschließenden Aufruf von SetNettoDuration) ist nur aus Performance-Erwägungen zweckmäßig.
Eine Netto-Dauer, die nicht gleichzeitig Brutto-Dauer ist (Konstante ALL_TERMS), kann nicht diffus sein. Zwar kann die neue Periodenlänge auch in gröberen Zeiteinheiten als Tagen übergeben werden. Diese Angabe wird jedoch in Tagen umgerechnet und als solche gespeichert.
Auch die Netto-Dauer kann negativ sein.
Eine geänderte Netto-Dauer führt auch zu einem geänderten Enddatum (EndOfPeriod).
Für ein Tagesdatum gibt es keine Netto-Dauer.

Code-Beispiel:

In dem Beispiel-Programm wird die Periodenlänge des Datumsperiode "Vom 3.10.1990 bis zum 5.10.1990" bestimmt. 

Var(date, sdate)                          // deklariere Variable
CreateTransObject(CX_DATE) -> date        // erzeuge ein Tagesdatum
CreateTransObject(CX_SPAN_DATE) -> sdate  // erzeuge eine Datumsperiode
"3.10.1990" sdate Put                     // setze das Startdatum der Periode
"5.10.1990" date Put                      // setze das Tagesdatum
date sdate Call(SetEndOfPeriod)           // setze das Enddatum der Periode
WORKINGDAY sdate Call(NetDuration)        // liefere die Arbeitstage die die Periode umfasst

Das Ausführen dieses Skriptes erzeugt den Wert "2 Tage", die Arbeitstage in der Datumsperiode. 

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_SPAN_DATE die Datumsperiode
Top-1 INTEGER Konstante des Netto-Typs
Stack(Out) Top CX_VALUE die Periodenlänge
Funktionsaufruf: Call(NetDuration)