Дата и время в ABAP – это отдельный тип данных и арифметические операции с этими типами возможны. Давайте рассмотрим простейший расчет первых и последних дней текущего, предыдущего и следующего месяцев. Полный код здесь. -{abap} Листинг1 Первый день месяца текущего, предыдущего и следующего месяца [[[ METHOD _first_day_of_cur_month.
DATA lv_target_day TYPE sydatum.
DATA ls_res_out TYPE ts_res_out.
lv_target_day = sy-datum.
lv_target_day+6(2) = '01'.
ls_res_out-show_txt = '1st Day of Month'.
ls_res_out-res = _conv_date_def( lv_target_day ).
APPEND ls_res_out TO mt_res_out.
ENDMETHOD.
METHOD _first_day_of_prev_month.
DATA lv_target_day TYPE sydatum.
DATA ls_res_out TYPE ts_res_out.
lv_target_day = sy-datum.
lv_target_day+6(2) = '01'.
lv_target_day -= 1.
lv_target_day+6(2) = '01'.
ls_res_out-show_txt = 'first_day_of_prev_month'.
ls_res_out-res = _conv_date_def( lv_target_day ).
APPEND ls_res_out TO mt_res_out.
ENDMETHOD.