作者:​edwin​

REPORT  z_barry_test NO STANDARD PAGE HEADING .   DATA: date1 LIKE sy-datum,

 

        date2(30).

date1 = sy-datum.


DO 400 TIMES.


 

date1 = date1 + 1 .

 

PERFORM get_date2 USING date1 CHANGING date2.

 

WRITE / date2.

ENDDO.

  *&---------------------------------------------------------------------*

*& 

        Form  get_date2

*&---------------------------------------------------------------------*


FORM get_date2 USING value(date_in) LIKE sy-datum


 

                          CHANGING date_str.

 

DATA: yy(10),

 

            mm(10),

 

            dd(10).

 

DATA: len TYPE i.     len = 3 - cl_abap_char_utilities=>charsize.   yy = date_in+0(4).

 

mm = date_in+4(2).

 

dd = date_in+6(2).     TRANSLATE yy USING '0〇1一2二3三4四5五6六7七8八9九'.

 

TRANSLATE mm USING '1一2二3三4四5五6六7七8八9九'.

 

TRANSLATE dd USING '1一2二3三4四5五6六7七8八9九'.     IF date_in+4(2) > 9.

 

    SHIFT mm BY len PLACES .

 

    CONCATENATE '十' mm INTO mm.

 

ENDIF.

 

IF date_in+6(2) > 29 .

 

    SHIFT dd BY len PLACES .

 

    CONCATENATE '三十' dd INTO dd.

 

ELSEIF date_in+6(2) > 19 .

 

    SHIFT dd BY len PLACES .

 

    CONCATENATE '二十' dd INTO dd.

 

ELSEIF date_in+6(2) > 9.

 

    SHIFT dd BY len PLACES  .

 

    CONCATENATE '十' dd INTO dd.

 

ENDIF.

 

CONCATENATE yy '年' mm'月' dd '日' INTO date_str.

 

REPLACE ALL OCCURRENCES OF '0' IN date_str WITH ``.

ENDFORM.