ปีอธิกสุรทิน (Leap Year) มีวันที่มากกว่าปีปกติ 1 วัน (วันที่ 29 กุมภาพันธ์) เพื่อให้ปีปฏิทินสอดคล้องกับปีดาราศาสตร์
กฎการตรวจสอบ:
- ปีที่หารด้วย 4 ลงตัว เป็นปีอธิกสุรทิน
- แต่ปีที่หารด้วย 100 ลงตัว ไม่ใช่ ปีอธิกสุรทิน
- ยกเว้นปีที่หารด้วย 400 ลงตัว เป็น ปีอธิกสุรทิน
วิธีที่ 1: ใช้เงื่อนไขรวม (Single if-else)
#include <iostream>
using namespace std;
int main() {
int year = 2016;
if (((year % 4 == 0) && (year % 100 != 0)) || (year % 400 == 0))
cout << year << " is a leap year";
else
cout << year << " is not a leap year";
return 0;
}
ผลลัพธ์
2016 is a leap year
วิธีที่ 2: ใช้ Nested if-else
#include <iostream>
using namespace std;
int main() {
int year = 2020;
if (year % 4 == 0) {
if (year % 100 == 0) {
if (year % 400 == 0)
cout << year << " is a leap year";
else
cout << year << " is not a leap year";
} else
cout << year << " is a leap year";
} else
cout << year << " is not a leap year";
return 0;
}
ผลลัพธ์
2020 is a leap year
วิธีนี้ตรวจสอบทีละขั้นตอน: หาร 4 ลงตัว → ตรวจสอบ 100 → ถ้าหาร 100 ลงตัว ตรวจสอบ 400