ABAP으로 윤년을 계산하는 프로그램 로직을 구현하는 방법


다양한 프로그래밍 언어에서 윤년을 계산하는 로직을 구현해서 사용하게 됩니다.

SAP ABAP 프로그램에서도 윤년을 계산해야 할 경우가 생기게 됩니다.

이번 글에서는 윤년의 정의와 ABAP으로 윤년을 계산하는 프로그램 로직을 구현하는 방법에 대해 알아보겠습니다.

윤년의 정의

윤년(閏年)은 역법을 실제 태양년에 맞추기 위해 여분의 하루 또는 월(月)을 끼우는 해이다. 태양년은 정수의 하루로 나누어떨어지지 않고, 달의 공전주기와 지구의 공전주기는 다르기 때문에 태양력에서는 하루(윤일), 태음태양력에서는 한 달(윤달)을 적절한 시기에 끼워서 이를 보정한다.

태양력에서는 보통 윤일이 들어 있는 해를 말하는데, 이 경우 1년은 366일이 되며 이것이 바로 윤년이다. 지구가 태양을 한 바퀴 도는 데에는 365일 5시간 48분 46초가 걸리므로 365일을 제외한 시간들을 모아 태양력에서는 4년마다 한 번 2월 29일을 두어 하루를 늘리고, 태음력에서는 평년이 354일이므로 계절과 역월(曆月)을 조절하기 위하여 19년에 7번의 비율로 윤달을 끼워 1년을 13개월로 한다. 윤년이 아닌 해는 평년이라고 한다.

출처 : 위키백과 (https://ko.wikipedia.org/wiki/%EC%9C%A4%EB%85%84)

ABAP으로 윤년을 계산하는 프로그램 로직을 구현하기

▶ 연도가 윤년인지 확인하는 방법은 다음과 같습니다.

  1. 연도를 4로 나눌 수 있는 경우 다음 단계로 이동합니다. 그렇지 않다면 해당 연도는 “평년“입니다.
  2. 연도를 100으로 나눌 수 있는 경우 다음 단계로 이동합니다. 그렇지 않다면 해당 연도는 “윤년“입니다.
  3. 연도를 400으로 나눌 수 있는 경우 해당 연도는 “윤년“입니다. 그렇지 않다면 해당 연도는 “평년“입니다.

▼ 아래 ABAP 프로그램은 위의 윤년 확인 방법을 로직으로 구현한 소스 코드입니다.

DATA : LV_DATE TYPE NUM4.
 
PARAMETERS: P_DATE TYPE DATS.
 
LV_DATE = P_DATE.
 
IF LV_DATE MOD 4 = 0.
 
  IF LV_DATE MOD 100 = 0.
 
    IF LV_DATE MOD 400 = 0.
      WRITE : ‘윤년’.
    ELSE.
      WRITE : ‘평년’.
    ENDIF.
 
  ELSE.
    WRITE : ‘윤년’.
  ENDIF.
 
ELSE.
  WRITE : ‘평년’.
ENDIF.
 

ABAP으로 윤년을 계산하는 프로그램 로직 실행 결과

▼ 2023년은 평년입니다.

ABAP으로 윤년을 계산하는 프로그램 로직 실행 결과 - 평년

▼ 2024년은 윤년입니다.

ABAP으로 윤년을 계산하는 프로그램 로직 실행 결과 - 윤년





이 글이 도움이 되었기를 바랍니다. ^-^


답글 남기기