Я, конечно, предполагаю, что в вашей системе есть функциональный модуль ISP_MONTHS_TO_DATE. Если это не тот случай, вы должны искать * month * в SE37, есть тонна функциональных модулей для добавления месяцев к датам (если вы пытаетесь это сделатьэто сам, у вас будут ошибки).
REPORT zdemo.
DATA : l_date TYPE sy-datum.
DATA : l_season TYPE string.
l_date = sy-datum.
PERFORM get_season USING l_date CHANGING l_season.
WRITE: 'The current season is', l_season. NEW-LINE.
DO.
CALL FUNCTION 'ISP_ADDING_MONTHS_TO_DATE'
EXPORTING
months = 3
start_date = l_date
IMPORTING
end_date = l_date.
IF l_date(4) GT 2020.
EXIT.
ENDIF.
PERFORM get_season USING l_date CHANGING l_season.
WRITE: 'The season on', l_date , 'is' , l_season. NEW-LINE.
ENDDO.
*&---------------------------------------------------------------------*
*& Form get_seasons
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
* -->DATE text
* -->SEASON text
*----------------------------------------------------------------------*
FORM get_season USING p_date TYPE sydatum CHANGING p_season TYPE string.
IF p_date+4 LT '0321'.
l_season = 'Winter'.
ELSEIF p_date+4 LT '0621'.
l_season = 'Spring'.
ELSEIF p_date+4 LT '0921'.
l_season = 'Summer'.
ELSEIF p_date+4 LT '1221'.
l_season = 'Fall'.
ELSE.
l_season = 'Winter'.
ENDIF.
ENDFORM. "get_season