Lade...
 

CX_DATE::Last

CX_DATE::Last

Beschreibung:

Diese Funktion ermittelt den Tag der in der letzten Woche des Monats des Datums der dem übergebenen Wochentag entspricht. Wir haben es also mit einer 3 stufigen Suche zu tun:

  1. Monat/Jahr des Datums als Ausgangspunkt. (Der Tag spielt keine Rolle)
  2. Suche die letzte Woche zu diesem Monat/Jahr
  3. Suche den Tag zum Wochentag in dieser Woche

Wir erhalten also ein Ergebnis, das einer saloppen Beschreibung wie "Der letzte Mittwoch im Monat" entspricht.

In Monaten, in denen der betreffende Wochentag vier mal vorkommt, stimmt das Ergebnis dieser Funktion mit dem aus Fourth überein. Bei Monaten, in denen der Wochentag fünf mal vorkommt, ersetzt diese Funktion die nicht vorhandene Funktion Fifth.
Der Wochentag wird als Konstante übergeben, wie sie u.a. von der Funktion DayOfWeek benutzt werden. Siehe hierzu die Wochentag-Tabelle.
Für eine Datumsperiode bezieht sich diese Funktion auf ihr Startdatum.

In dem Beispiel-Programm wird der letzte Montag im Monat des "3.1.1997" ermittelt, wobei der Montag durch eine "0" repräsentiert wird.

Var(date)   CreateTransObject(CX_DATE) -> date   // Objekt erzeugen
"3.1.1997" date Put                              // Den Wert setzen
0 date Call(Last)                              // Hole den letzten Montag (Konstante: 0) dieses Monats

Als Ergebnis erhält man das Tagesdatum "27.1.1997".

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_DATE oder CX_SPAN_DATE das Datum(-sobjekt)
  Top-1 INTEGER die Nummer des Wochentages
Stack(Out) Top CX_DATE der gesuchte Wochentag
Funktionsaufruf: Call(Last)