[SAP/ABAP] 기준일자에 대해 일,월,년 이전 또는 이후 날짜 계산하기

2025. 5. 2. 09:00SAP - ABAP

기준일자에 대해 날짜 계산하기(일, 월, 년 (+, -))

* 함수

CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

EXPORTING

date =

days = '

months =

years =

signum =

IMPORTING

calc_date = lv_fdate.

* 예시1 : 현재 일자의 전월 1일 날짜 구하기

→ 오늘 날짜가 2019년 9월 10일 경우, 결과물이 2019년 8월 1일이 나와야 함

DATA : lv_date LIKE sy-datum.

CONCATENATE sy-datum(6) '01' INTO lv_date

" 20190910 중 앞 6자리를 자른 뒤 01을 붙여줌 = 20190901

CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

EXPORTING

DATE = lv_date

days = '00'

months = '01'

signum = '-'

years = '00'

IMPORTING

CALC_DATE = lv_date.

* 예시2 : 현재 월의 마지막 날짜 구하기

→ 오늘 날짜가 2019년 9월 10일 경우, 결과물이 2019년 9월 30일이 나와야 함

DATA : lv_date LIKE sy-datum.

CONCATENATE sy-datum(6) '01' INTO lv_date

" 20190910 중 앞 6자리를 자른 뒤 01을 붙여줌 = 20190901

CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'

EXPORTING

DATE = lv_date

days = '00'

months = '01'

signum = '+'

years = '00'

IMPORTING

CALC_DATE = lv_date. "lv_date = '20191001'

lv_date = lv_date - 1.

기준일자에 해당하는 월의 마지막 날 계산하기

 

위의 예제2 에서 처럼 다음 달 1일에서 -1일을 하면 마지막날이 되긴 하지만

아예 입력일의 해당 월 마지막 날짜를 구하는 함수도 있습니다.

* 함수

CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'

EXPORTING

day_in =

IMPORTING

last_day_of_month =

* DAY_IN_NO_DATE = 1

* OTHERS = 2

* 예시3 : 현재 월의 마지막 날짜 구하기

→ 오늘 날짜가 2019년 9월 10일 경우, 결과물이 2019년 9월 30일이 나와야 함

DATA : lv_date LIKE sy-datum.

CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'

EXPORTING

day_in = sy-datum

IMPORTING

last_day_of_month = lv_date.

* DAY_IN_NO_DATE = 1

* OTHERS = 2

From ~ To 날짜가 몇일 차이인지 계산하기

* 함수

CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'

EXPORTING

I_DATE_FROM =

I_DATE_TO =

IMPORTING

E_DAYS =

* 예시4 : From - TO 날짜 계산하기

→ 오늘날짜부터 2020-01-01 까지 몇일이 남았는지 계산

DATA : lv_date LIKE sy-datum.

CALL FUNCTION 'FIMA_DAYS_AND_MONTHS_AND_YEARS'

EXPORTING

I_DATE_FROM = SY-DATUM

I_DATE_TO = '20200101'

IMPORTING

E_DAYS = lv_date.