如何实现任意输入一个年月日,计算该日期到2000.1.1中间有多少天。。
我想了好久,还是觉得很奇怪啊,中间要考虑闰年什么的。。。有木有比较简单的方法啊,新手求解。。
只能是所有情况都考虑 闰年 每个月的天数
参考一下 也许能帮到你
#include<stdio.h>
int year,month,day;
int isyear(int year)
{
if(year%4==0&&year%100!=0||year%400==0)
return 1;
else
return 0;
}
int main()
{
int i,res;
int data=0;
while(scanf("%d.%d.%d",&year,&month,&day)!=EOF)
{
data=day;
month-=1;
switch(month)
{
case 11:data+=30;
case 10:data+=31;
case 9:data+=30;
case 8:data+=31;
case 7:data+=31;
case 6:data+=30;
case 5:data+=31;
case 4:data+=30;
case 3:data+=31;
case 2:if(isyear(year))
data+=29;
else
data+=28;
case 1:data+=31;
}
if(year>2000)
{
res=year;
i=2000;
}
else
{
res=2000;
i=year;
}
for(i;i<res;i++)
{
if(isyear(year))
data+=366;
else
data+=365;
}
printf("%d\n",data);
}
return 0;
}
[ 本帖最后由 zxd543 于 2012-10-30 17:00 编辑 ]