题目地址:http://ac.jobdu.com/problem.php?cid=1040&pid=5
C语言源码:
#include<stdio.h>
int leapyear(int year)
{
if((year%4==0&&year%100!=0)||year%400==0)
return 1;
else
return 0;
}
int day(int year,int month,int day)
{
int i,sum;
i=1;
sum=0;
while(i<month)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
sum+=31;
else
if(i!=2)
sum+=30;
else
if(leapyear(year))
sum+=29;
else
sum+=28;
i++;
}
return sum+day;
}
int main()
{
int a,b,sum,i,year1,year2,month1,month2,day1,day2;
while(scanf("%d",&a)!=EOF)
{
scanf("%d",&b);
if(a>b)
{
sum=a;
a=b;
b=sum;
}//a<b
sum=0;
year1=a/10000;
year2=b/10000;
month1=(a/100)%100;
month2=(b/100)%100;
day1=a%100;
day2=b%100;
i=year1+1;
while(i<year2)
{
if(leapyear(i))
sum+=366;
else
sum+=365;
i++;
}
if(year1==year2)
sum=day(year2,month2,day2)-day(year1,month1,day1)+1;
else
{
sum+=day(year2,month2,day2)+365-day(year1,month1,day1)+1;
if(leapyear(year1))
sum+=1;
}
printf("%d\n",sum);
}
}