Zitat Zitat von Spateneder Beitrag anzeigen
Hier ein Link zur Verwendung der Datums-APIs in CLLE:
Sample LE/date functions from CLPLE

Vorgehensweise für Dein Problem:

  1. Wochentag des 1. Januar für das gesuchte Jahr ermitteln
  2. Datum des ersten Montags im Jahr ermitteln
  3. 7er-Einmaleins
Man sollte dabei allerdings berücksichtigen, dass der erste Montag im Jahr nicht zwangläufig in der KW 1 liegen muss!
Die ISO Regeln lauten:
Die Woche beginnt mit einem Montag und die Mehrheit der Tage in der 1. Kalenderwoche muss aus dem neuen Jahr sein.
Was man sicher sagen kann ist, dass der erste Donnerstag im Jahr oder der 4. Januar immer in KW1 ist.

Ich hab das Ganze mal als SQL Funktion gemacht. Das könnte man in embedded SQL hinterlegen und dann aus CL aufrufen:

Code:
Create Function MySchema/Tag1KW
      (ParYear    Decimal(4, 0),
       ParWeekIso Decimal(2, 0))
   Returns Date
   Language SQL
Begin
   Declare Jan4 Date;
   Set Jan4 = Date(Digits(ParYear) concat '-01-04');
   If    ParWeekISO <= 0
      or ParWeekISO > Week_ISO(Jan4 + 1 Year - 7 Days) 
      Then Return Date('0001-01-01');
   End If;
   Return Jan4 + (((ParWeekIso - 1) * 7 + 1) - DayOfWeek_ISO(Jan4)) Days;
End;
Birgitta