关于公历闰年是这样规定的:地球绕太阳公转一周叫做一回归年,一回归年长365日5时48分46秒。因此,公历规定有平年和闰年,平年一年有365日,比回归年短0.2422日,四年共短0.9688日,故每四年增加一日,这一年有366日,就是闰年。但四年增加一日比四个回归年又多0.0312日,400年后将多3.12日,故在400年中少设3个闰年,也就是在400年中只设97个闰年,这样公历年的平均长度与回归年就相近似了。由此规定:年份是整百数的必须是400的倍数才是闰年,例如1900年、2100年就不是闰年。
我们居住的地球总是绕着太阳旋转的。地球绕太阳转一圈需要365天5时48分46秒,也就是365.2422天。为了方便,一年定为365天,叫做平年;这样每过四年差不多就要多出一天来,把这一天加在2月里,这一年就有366天,叫做闰年。
通常,每四年里有三个平年一个闰年。公历年份是4的倍数的,一般都是闰年。
按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样经过四百年就会多算出大约3天来,因此,每四百年中要减少三个闰年。所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的就是平年。
也就 我们居住的地球总是绕着太阳旋转的。地球绕太阳转一圈需要365天5时48分46秒,也就是365.2422天。为了方便,一年定为365天,叫做平年;这样每过四年差不多就要多出一天来,把这一天加在2月里,这一年就有366天,叫做闰年。
通常,每四年里有三个平年一个闰年。公历年份是4的倍数的,一般都是闰年。
按照每四年一个闰年计算,平均每年就要多算出0.0078天,这样经过四百年就会多算出大约3天来,因此,每四百年中要减少三个闰年。所以规定,公历年份是整百数的,必须是400的倍数的才是闰年,不是400的倍数的就是平年。
我编出来的程序与你给的例子有一天的误差,明天大物考试,不想检查了。。
#include <stdio.h>
void main()
{
int a,b,c,d,e,f,g,h,i,x,y,z,m,sum=0;
printf("请输入日期,例如:1992,10,10 1999,10,10\n");
scanf("%d,%d,%d",&a,&b,&c);
scanf("%d,%d,%d",&d,&e,&f);
g=d-a;
h=g/4;
i=g/400;
if((d%10)%10==0)
{
if(e%2==0)
x=61*e/2;
if(e%2!=0)
x=61*(e-1)/2+31;
if(e<8)
x--;
if(b%2==0)
y=61*b/2;
if(b%2!=0)
y=61*(b-1)/2+31;
if(e<8)
y--;
m=x-y;
z=f-c;
sum=g*365+h+i+m+z;
}
if ((d%10)%10!=0&&d%4==0)
{
if(e%2==0)
x=61*e/2;
if(e%2!=0)
x=61*(e-1)/2+31;
if(e<8)
x--;
if(b%2==0)
y=61*b/2;
if(b%2!=0)
y=61*(b-1)/2+31;
if(e<8)
y--;
m=x-y;
z=f-c;
sum=g*365+h+i+m+z;
}
if ((d%10)%10!=0&&d%4!=0)
{
if(e%2==0)
x=61*e/2;
if(e%2!=0)
x=61*(e-1)/2+31;
if(e<8)
x-=2;
if(b%2==0)
y=61*b/2;
if(b%2!=0)
y=61*(b-1)/2+31;
if(e<8)
y-=2;
m=x-y;
z=f-c;
sum=g*365+h+i+m+z;
}
printf("%d\n天",sum);
}