Trong PL/SQL (Oracle), bạn có thể kiểm tra năm nhuận bằng cấu trúc IF-THEN-ELSE với hàm MOD().
Thuật toán năm nhuận
isLeapYear(year):
if year chia hết cho 4 và KHÔNG chia hết cho 100 → năm nhuận
else if year chia hết cho 400 → năm nhuận
else → KHÔNG phải năm nhuận
Ví dụ 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;
Kết quả
2012 is leap year
Giải thích:
MOD(year, 4) = 0: Chia hết cho 4MOD(year, 100) != 0: KHÔNG chia hết cho 100 (loại trừ năm tròn thế kỷ không nhuận như 1900, 2100)MOD(year, 400) = 0: Chia hết cho 400 (những năm tròn thế kỷ nhuận như 2000, 2400)- Logic:
(chia_h_4 AND khong_chia_h_100) OR chia_h_400
Lưu ý: Đây là cú pháp PL/SQL (Oracle), không chạy được trên MySQL. Trong MySQL, bạn có thể dùng hàm YEAR() và logic tương tự trong stored procedure hoặc ứng dụng.