การตรวจสอบปีอธิกสุรทินด้วย PL/SQL
ใน PL/SQL เราสามารถเขียนบล็อกโค้ดเพื่อตรวจสอบว่าปีใดปีหนึ่งเป็นปีอธิกสุรทินหรือไม่ ตามกฎ:
- หาร 4 ลงตัว และ ไม่หาร 100 ลงตัว → เป็นปีอธิกสุรทิน
- หรือ หาร 400 ลงตัว → เป็นปีอธิกสุรทิน
- กรณีอื่น → ไม่ใช่ปีอธิกสุรทิน
อัลกอริทึม
isLeapYear(year):
BEGIN
IF year MOD 4 = 0 AND year MOD 100 != 0 THEN
RETURN 'Leap Year';
ELSIF year MOD 400 = 0 THEN
RETURN 'Leap Year';
ELSE
RETURN 'Not Leap Year';
END IF;
END
ตัวอย่างโค้ด 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
คำอธิบาย
MOD(n, m): หาเศษจากการหาร n ด้วย mDBMS_OUTPUT.PUT_LINE: แสดงข้อความในคอนโซล (ต้องเปิด SERVEROUTPUT ON)- ปี 2012 หาร 4 ลงตัว (503) และ หาร 100 เหลือ 12 → เป็นปีอธิกสุรทิน
- โค้ดนี้รันในสภาพแวดล้อม Oracle Database (PL/SQL) ไม่ใช่ MySQL