Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

PL/SQL로 주어진 연도가 윤년인지 확인하는 방법

이 글에서는 PL/SQL을 사용하여 주어진 연도가 윤년(leap year)인지 아닌지 판별하는 방법을 알아보겠습니다. PL/SQL 코드는 선언부와 실행부 등 관련된 문장들이 하나의 블록으로 구성되어 동작합니다.

윤년을 판별하는 기준은 다음과 같습니다.

윤년 판별 알고리즘

isLeapYear(year):
begin
    if year is divisible by 4 and not divisible by 100, then
       it is leap year
    else if the number is divisible by 400, then
       it is leap year
    else
       it is not leap year
end

즉, 윤년의 조건을 정리하면 다음과 같습니다.

  • 연도가 4로 나누어 떨어지고, 100으로는 나누어 떨어지지 않으면 윤년입니다.
  • 연도가 400으로 나누어 떨어지면 윤년입니다.
  • 그 외의 경우에는 모두 평년입니다.

PL/SQL 예제 코드

DECLARE
    year NUMBER := 2012;
BEGIN
    IF MOD(year, 4)=0
       AND
       MOD(year, 100)!=0
       OR
       MOD(year, 400)=0 THEN
        dbms_output.Put_line(year || ' is leap year ');
    ELSE
        dbms_output.Put_line(year || ' is not leap year.');
    END IF;
END;

실행 결과

2012 is leap year

코드 설명

위 예제에서는 변수 year에 2012를 대입한 후, MOD 함수를 사용하여 나머지 연산을 수행합니다.

MOD(year, 4)는 연도를 4로 나눈 나머지를 반환하며, 그 결과가 0이면 4로 나누어 떨어진다는 의미입니다. 이 논리식은 AND, OR 연산자를 조합하여 앞서 설명한 윤년 판별 규칙을 그대로 구현한 것입니다.

2012년은 4로 나누어 떨어지고 100으로는 나누어 떨어지지 않으므로, 결과적으로 "2012 is leap year"라는 메시지가 출력됩니다.