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