Wie wärs mit ILERPG ?

D MyDate D

monitor;
MyDate=%date(Quelle); // es werden verschiedene Formate unterstützt
on-error *all;
// Datum ungültig
endmon;

Und nun zu SQL:

DMyWeek 5I 0

c/exec-sql
c+ set MyWeek = week_iso(: MyDate)
c/end-exec

Was die Wochenberechnung incl. Jahr angeht, so suche mal nach WEEK_ISO im Forum. Birgitta hat da eine kleine Routine abgestellt.