ABAP 날짜 계산 함수 – RP_CALC_DATE_IN_INTERVAL

ABAP 로고

ABAP 날짜 계산 함수 – RP_CALC_DATE_IN_INTERVAL

ABAP 날짜 계산 함수 RP_CALC_DATE_IN_INTERVAL 은 프로그래밍을 하던 도중 날짜를 계산해야 되는 경우 사용한다.

예를 들어 오늘로부터 30일 전 등의 날짜를 계산 해야 했다.

변수에서 해당 일 수 만큼 – 해도 되지만 그렇게 되면 달이 넘어갈 때의 계산에 문제가 있을 수 있다. (예: 11월 5일의 30일 전) 또 한 달의 최대 일자가 전부 다르기 때문에 문제가 생길 수도 있다.

그래서 이런 날짜를 계산할 땐 함수를 사용하는 것이 좋다.

RP_CALC_DATE_IN_INTERVAL

해당 Function은 기준 일자로부터 일, 월, 년도를 가감할 수 있는 기본 ABAP 함수이다.

최신 버전의 ABAP 에선 ADD_DAYS, SUBTRACT_DAYS 등의 함수를 사용하는 모양이지만 내가 업무 하는 ECC 6.0 당시엔 사용할 수 없는 모양이라 해당 함수를 사용할 수 없었다.

RP_CALC_DATE_IN_INTERVAL 함수는 대부분의 기본 날짜 계산을 충족하고 대부분 환경에서 사용할 수 있는 것으로 보인다.

예시 코드:

DATA: lv_date TYPE sy-datum,
      lv_calculated_date TYPE sy-datum.

lv_date = '20231204'.  " 예: 2023년 12월 4일

CALL FUNCTION 'RP_CALC_DATE_IN_INTERVAL'
  EXPORTING
    date            = lv_date
    days            = 10
    months          = 0
    years           = 0
    signum          = '+'  " 또는 '-' (빼기)
  IMPORTING
    calc_date       = lv_calculated_date.
ABAP

함수 설명

기준 날짜 변수 lv_data, 계산될 데이터가 담길 변수 lv_calculated_date 두 개의 변수 만 선언해도 함수 사용에 문제가 없다.

함수 내 date 패러미터에 기준 날짜 변수인 lv_date 를 할당 한 후 아래 days, months, years 값에 따라 계산 된 날짜가 lv_calculated_date 에 담기게 된다.

여기서 signum 패러미터엔 +, – 를 값으로 줘 내가 지정한 숫자 만큼 기준 일자에서 더할지 혹은 뺄지를 결정한다.

사용 시 주의 점

주의할 점은 일수만 계산하고 싶다 해도 months와 years 패러미터가 필수 값 이여서 0을 넣어줘야 한다.

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
목차
위로 스크롤