其解决方法有很多,我介绍下系统函数。顺便赏析下系统是如何实现这个功能的。
测是代码如下:
系统实现代码如下:
DATA:
DAYS(26) VALUE '00312831303130313130313031',
OFFSET TYPE I,
I1 TYPE I,
I2 TYPE I,
I3 TYPE I.
FIELD-SYMBOLS
.
OFFSET = 2 * PAR_MONTH.
ASSIGN DAYS+OFFSET(2) TO
.
PAR_DAYS =
.
IF PAR_MONTH = 2.
I1 = PAR_YEAR MOD 4.
I2 = PAR_YEAR MOD 100.
I3 = PAR_YEAR MOD 400.
IF I1 = 0 AND ( I2 <> 0 OR I3 = 0 ).
PAR_DAYS = PAR_DAYS + 1.
ENDIF.
ENDIF.
sap的代码可读性还是不错的,用了由于abap里没有数组使用了table lookup方法的时候像用汇编语言用数组一样。