Code: Alles auswählen.
REPORT zzdate.
TYPES: BEGIN OF ty_date,
year TYPE numc4,
month TYPE num02,
day TYPE num02,
END OF ty_date.
DATA: ls_date TYPE ty_date.
***
PARAMETERS: p_date TYPE sy-datum.
***
START-OF-SELECTION.
ls_date = p_date.
WRITE ls_date.
IF ls_date-month = '02'.
SUBTRACT 1 FROM ls_date-year.
ENDIF.
WRITE ls_date.
Um den Fehler zu suchen, wäre es hilfreich, wenn du auch die Datendefinition von ZW_DAT bzw. l_s_range_low mit dazuschreiben könntest.Was mache ich falsch, wass muss ich machen, damit ich 2013 bekommen?
Code: Alles auswählen.
REPORT ZPTEST .
DATA: ZW_DAT(4).
IF SY-DATUM+4(2) = '02'.
ZW_DAT = SY-DATUM(4) - 1.
ENDIF.
WRITE ZW_DAT.