All years which are perfectly divisible by 4 are leap years except for century years (years ending with 00), which are leap years only if they are perfectly divisible by 400.
For example,
Leap Year | Not Leap Year |
---|---|
1968 | 1971 |
2004 | 2006 |
2012 | 2010 |
1200 | 1700 |
1600 | 1800 |
2000 | 1900 |
In the examples below, the user is asked to enter a year, and the program checks whether the year entered by the user is a leap year or not.
Example 1: Check Leap Year Using if...else Ladder
#include <iostream>
using namespace std;
int main() {
int year;
cout << "Enter a year: ";
cin >> year;
// leap year if perfectly divisible by 400
if (year % 400 == 0) {
cout << year << " is a leap year.";
}
// not a leap year if divisible by 100
// but not divisible by 400
else if (year % 100 == 0) {
cout << year << " is not a leap year.";
}
// leap year if not divisible by 100
// but divisible by 4
else if (year % 4 == 0) {
cout << year << " is a leap year.";
}
// all other years are not leap years
else {
cout << year << " is not a leap year.";
}
return 0;
}
Output 1
Enter a year: 1900 1900 is not a leap year.
Output 2
Enter a year: 2012 2012 is a leap year.
Example 2: Check Leap Year Using Nested if
#include <iostream>
using namespace std;
int main() {
int year;
cout << "Enter a year: ";
cin >> year;
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;
}
Here, we have used nested if
statements to check whether the year given by the user is a leap year or not.
First, we check if year is divisible by 4 or not. If it is not divisible, then it is not a leap year.
If it is divisible by 4, then we use an inner if
statement to check whether year is divisible by 100.
If it is not divisible by 100, it is still divisible by 4 and so it is a leap year.
We know that the century years are not leap years unless they are divisible by 400.
So, if year is divisible by 100, another inner if
statement checks whether it is divisible by 400 or not.
If it's divisible by 400, it is a leap year. Otherwise, it's not a leap year.
Example 3: Check Leap Year Using Logical Operators
We can combine the conditions required for a leap year into a single if...else
statement using the &&
and ||
operators.
#include <iostream>
using namespace std;
int main() {
int year;
cout << "Enter a year: ";
cin >> year;
// if year is divisible by 4 AND not divisible by 100
// OR if year is divisible by 400
// then it is a leap year
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;
}