Lade...
 

CX_DATE::DayOfWeek

CX_DATE::DayOfWeek

Beschreibung:

Diese Funktion gibt einen Wert für den Wochentag eines Datums als INTEGER-Konstante zurück. Dieser Konstante kodiert nur den Namen des Wochentags und ist unabhängig davon, ob Montag der erste Tag der Woche ist.
Soll ermittelt werden, der wievielte Tag der Woche im Tagesdatum ist, so ist die Funktion DayInWeek zu verwenden.
Für ein undefiniertes bzw. unvollständiges Datum wird standardmäßig "-1" zurückgegeben. Für eine Datumsperiode bezieht sich diese Funktion auf ihr Startdatum.

Code-Beispiele:
Mit diesem Makro wird eine Liste mit allen Wochentagen erzeugt

Define(FillWeekDays)  
  CreateTransCollection(LIST) -> weekDays  // Die Liste
  Var(today)                                
  CreateTransObject(CX_DATE) -> today      // Das heutige Datum als Start- und Endpunkt
  //today date Put
  Var(i) 1 -> i
  1 do{                                    // Schleife über die nächsten Tage beginnend mit heute
    Drop
    Var(date) CreateTransObject(CX_DATE,KEEP) -> date // Neues Datum. Default: heutiges Tagesdatum
    i date Call(AddDay)                    // Um i Tage in die Zukunft verschieben
    date weekDays Insert                   // neues Tagesdatum an Liste anhängen
    i 1+ -> i                              // Inkrement
    date Call(DayOfWeek)
    today Call(DayOfWeek) = !              // Schleifenabbruch, wenn selber Wochentag wie heute
  }while

  weekDays                                 // Rückgabewerte
;

In dem Beispiel-Programm wird der Wert des Wochentages des Tagesdatums "3.10.1990" berechnet.

Var(date)                          // deklariere eine Variable
CreateTransObject(CX_DATE) -> date // generiere das heutige Tagesdatum
"3.10.1990" date Put               // schreibe das neue Datum in das Datumsobjekt
date Call(DayOfWeek)               // liefere den Wert des Wochentages

Das Ausführen dieses Skriptes erzeugt den Wert "2". Dies entspricht (s.u.) Mittwoch.

 

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_DATE oder CX_SPAN_DATE das Datum(-sobjekt)
Stack(Out) Top INTEGER der Wochentag-Wert
Funktionsaufruf: Call(DayOfWeek)

 

Werte der Wochentage
Wochentag Wert
Montag 0
Dienstag 1
Mittwoch 2
Donnerstag 3
Freitag 4
Samstag 5
Sonntag 6