在實際的應用中,我們經常要檢查是否為 潤年 ?一般情況我們都通過數字計算,下面提供一種簡單的方法,跟大家分享...
指令 CVTDAT 已經知道那一年是潤年, 只要將 "0229" 與二位數字年合併成 'mmddyy' 的格式,
當成指令 CVTDAT 的 DATE 參數值, 如果指令CVTDAT 傳回錯誤訊息 "CPF0555 日期錯誤或日期格式錯誤" ,
那表示此二位數字年非潤年, 如果無傳回錯誤訊息, 此二位數字年即潤年.
代码:
PGM (&YEAR)
DCL &YEAR *CHAR 2
DCL &MDY *CHAR 6
CHGVAR (&MDY) ('0229' *cat &YEAR)
CVTDAT DATE(&MDY) TOVAR(&MDY) FROMFMT(*MDY) TOFMT(*MDY) TOSEP(*NONE)
MONMSG CPF0555 EXEC(DO)
SNDMSG MSGID(CPF9898) MSGF(QCPFMSG) +
MSGDTA('YEAR' *BCAT &YEAR *BCAT 'is not leap year') +
MSGTYPE(*COMP)
RETURN
ENDDO
SNDMSG MSGID(CPF9898) MSGF(QCPFMSG) +
MSGDTA('YEAR' *BCAT &YEAR *BCAT 'is leap year') +
MSGTYPE(*COMP)
ENDPGM