我们知道,地球绕太阳公转一周为一回归年,而一回归年大约为365.24220日,故此在公历中规定一年为365日(平年),但是4年之后相差0.24220*4=0.9688日,大约为一日,所以又规定,每四年增加一日来抵消这0.9688日(闰年),增加的这一日是放在二月中的,所以二月便有28日(平年)和29日(闰年)这两种情况。但是依照这样的计算来看百年之后将累计成365*100+25=36525日,比实际100*365.24220=36524.220多,故又规定百年(世纪年)不润,每400年再润,例如:1700、1800、1900、2100和2200是平年,1600、2000和2400是闰年。故平均天数就为365+1/4-1/100+1/400=365.2425,和365.220接近。
计算闰年有个算法,伪代码如下:
c代码如下:
计算闰年有个算法,伪代码如下:
if (如果不能被4整除) then 平年 else if (如果不能被100整除) then 闰年 else // 世纪年 if (如果不能被400整除) then 平年 else 闰年
c代码如下:
/* C program to check whether a year is leap year or not using if else statement. */
#include <stdio.h>
int main(void)
{
int year;
printf("Enter a year: ");
scanf("%d", &year);
if (year%4 != 0) {
printf("%d is a common year.\n", year);
} else {
if (year%100 != 0) {
printf("%d is a leap year.\n", year);
} else { /* Checking for a century year */
if (year%400 != 0) {
printf("%d is a common year.\n", year);
} else {
printf("%d is a leap year.\n", year);
}
}
}
return 0;
}