Lade...
 

CX_DATE::AgeInYMD

CX_DATE::AgeInYMD

Beschreibung:

Diese Methode berechnet die Differenz zwischen dem Datum und einem anderen Datum und gibt sie als einen Vektor, der aus den drei Angaben Jahres-, Monats- und Tagesdifferenz besteht, zurück. Für eine Datumsperiode bezieht sich diese Methode auf ihr Startdatum.

Betrachtet man den Rückgabewert der Methode als das Alter in Jahren, Monaten und Tagen, dann ist das CX_DATE-Objekt auf welchem die Methode aufgerufen wird, das Geburtsdatum und das Referenzdatum, welches als Parameter übergeben wird, das Datum für welches das Alter bestimmt werden soll (heute).

 

Die Reihenfolge in der die Differenz-Werte des zurückgegebenen Vektors auf das Geburtsdatum angewendet werden müssen, um das verwendete "heutige" Datum zu erhalten und damit die Subtraktion umzukehren, ist die gleiche Reihenfolge, wie die Werte im Vektor auftauchen: Jahre, Monate, Tage.
Diese Reihenfolge zu beachten ist wichtig, denn:

  • (25.02.2001 + 10 Tage) + 1 Monat = 07.03.2001 + 1 Monat = 07.04.2001
  • (25.02.2001 + 1 Monat) + 10 Tage = 25.03.2001 + 10 Tage = 04.04.2001

 

Sollte das Referenzdatum vor dem Geburtsdatum liegen, dann werden die Operanden vertauscht, die Differenz auf die gleiche Weise berechnet und anschließend alle Kompenten des Vektors negiert zurückgegeben.

 

Code-Beispiel:
LocalVar(birth, today, age) // Geburtstag setzen CreateTransObject(CX_DATE) "24.07.1992" Over Put -> birth // Alter bis heute berechnen (für heute=01.01.2000) CreateTransObject(CX_DATE) "01.01.2000" Over Put -> today today birth Call(AgeInYMD) -> age // [ 7 Jahre, 5 Monate, 8 Tage ] // Jetzt auf das heutige Datum aufaddieren birth // -> 24.07.1992 0 age GetElement // -> 7 Jahre + // -> 24.07.1999 1 age GetElement // -> 5 Monate + // -> 24.12.1999 2 age GetElement // -> 8 Tage + // -> 01.01.2000

 

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_DATE oder CX_SPAN_DATE das Datum (Geburtstag)
  Top-1 CX_DATE das Referenzdatum (Heute)
Stack(Out) Top
VEKTOR<CX_VALUE>
Jahres-, Monats- und Tagesdifferenz (Alter)

 

Funktionsaufruf: Call(AgeInYMD)