Und endlich eine CL-Programm:

PGM
DCL VAR(&DATUM) TYPE(*CHAR) LEN(7)
DCL VAR(&TAG) TYPE(*DEC) LEN(2 0) VALUE(31)

DCL VAR(&DATUM1) TYPE(*CHAR) LEN(7)
DCL VAR(&cent1) TYPE(*char) LEN(1)
DCL VAR(&JAHR1) TYPE(*char) LEN(2)
DCL VAR(&MONAT1) TYPE(*char) LEN(2)
DCL VAR(&TAG1) TYPE(*CHAR) LEN(2) VALUE('31')

RTVSYSVAL SYSVAL(QCENTURY) RTNVAR&CENT1)
RTVSYSVAL SYSVAL(QYEAR) RTNVAR(&JAHR1)
RTVSYSVAL SYSVAL(QMONTH) RTNVAR(&MONAT1)

LOOP: CHGVAR VAR(&DATUM1) VALUE(&CENT1 *TCAT &JAHR1 *TCAT +
&MONAT1 *TCAT &TAG1)

CVTDAT DATE(&DATUM1) TOVAR(&DATUM) FROMFMT(*CYMD) +
TOFMT(*CYMD) TOSEP(*NONE)

MONMSG MSGID(CPF0555) EXEC(DO)
CHGVAR VAR(&tag) VALUE(&tag - 1)
CHGVAR VAR(&tag1) VALUE(&tag)
GOTO CMDLBL(LOOP)
ENDDO

ENDPGM


Jetzt das Feld &DATUM hat, was Sie wollen.
Und ganz einfach.