In
the Gregorian calendar (the current standard calendar in the world), normally the years that are integer multiples of 4 are called leap years. In
each leap year, the month of February has 29 days instead of 28. Adding an
extra day to the calendar every four years compensates for the fact that a
period of 365 days is shorter than a solar year by almost 6 hours. The
Gregorian calendar was first used in 1582.
Some exceptions to this basic
rule are required since the duration of a solar year is slightly less than 365.25
days. Over a period of 4 centuries, the accumulated
error of adding a leap day every 4 years amounts to about 3 extra days. The
Gregorian calendar therefore omits 3 leap days every 400 years, which is the
length of its leap cycle. This is done by omitting February 29 in the 3 century
years (integer multiples of 100) that are not also integer multiples of 400.
For example, 1700, 1800, 1900, 2100 and 2200 are common years, but 1600, 2000
and 2400 are leap years. By this rule, the average number of days per year is
365 + 1/4 − 1/100 + 1/400 = 365.2425.
There
is no year 0. The first year in the Gregorian calendar is year 1. The year
before 1AD in the western calendar is 1BC, not "year 0".
Method 1:
#include
<stdio.h>
int
main() {
int
year;
printf("
Enter a year: ");
scanf("%d",
&year);
while
( year <= 0) {
printf("\n\nWrong Input! The Gregorian Calendar Starts with Year 1.\n\n");
return
0;
}
while
( year > 0) {
if
( year%400 == 0)
printf("\n\n
%d is a leap year.\n\n", year);
else
if ( year%100 == 0)
printf("%\n\n
%d is not a leap year.\n\n", year);
else
if ( year%4 == 0 )
printf("\n\n
%d is a leap year.\n\n", year);
else
printf("\n\n
%d is not a leap year.\n\n", year);
return
0;
}}
Method 2:
#include<stdio.h>
int
main() {
int
year;
printf("
Enter any year: ");
scanf("%d",&year);
while
( year <= 0) {
printf("\n\nWrong Input! The Gregorian Calendar Starts with Year 1.\n\n");
return
0;
}
while
( year > 0) {
if(((year%4==0)&&(year%100!=0))||(year%400==0))
printf("\n\n
%d is a leap year.\n\n",year);
else
printf("\n\n
%d is not a leap year.\n\n",year);
return
0;
}}
Method 3: Find the leap years
between a given year range
#include<stdio.h>
int
main(){
int
year;
int
min_year,max_year;
printf("\n\n
Enter the lowest year: ");
scanf("%d",&min_year);
printf("\n\n
Enter the highest year: ");
scanf("%d",&max_year);
if
(( min_year < 1)||(max_year <1)) {
printf("\n\nWrong Input! The Gregorian Calendar Starts with Year 1.\n\n");
return
0;
}
if
( min_year > max_year) {
printf("\n\n
Wrong Input!\n\n");
return
0;
}
printf("\n\n
Leap years in the given range are: ");
for(year
= min_year;year <= max_year; year++){
if(((year%4==0)&&(year%100!=0))||(year%400==0))
printf("%d
",year);
}
printf("\n\n");
return
0;
}