注意:2000年是闰年!!!!
#include<stdio.h>
int date(int n1,int y1,int r1,int n2,int y2,int r2);
int run_or_ping(int x);
inline int yue_r(int n,int y);
int main()
{
int n1,y1,r1,n2,y2,r2;
printf("请输入第一个较小的年月日,用空格分开\n");
scanf("%04d%02d%02d",&n1,&y1,&r1);
printf("请输入第二个较大的年月日,用空格分开\n");
scanf("%04d%02d%02d",&n2,&y2,&r2);
date(n1,y1,r1,n2,y2,r2);
return 0;
}
int date(int n1,int y1,int r1,int n2,int y2,int r2)
{
int i,j,z,sum=0,flag=0,sum1=0;
for(i=n1;i!=n2;i++)
{
if(run_or_ping(i)==1)
sum=sum+366;
else sum=sum+365;
}
if(y1<y2)
for(j=y1;j!=y2;j++)
{
sum=sum+yue_r(n2,j);
}
else
{
for(j=y2;j!=y1;j++)
sum1=sum1+yue_r(n2,j);
sum=sum-sum1;
}
sum=sum+r2-r1;
printf("%04d.%02d.%02d~%04d.%02d.%02d相差%d天",n1,y1,r1,n2,y2,r2,sum);
return 0;
}
int run_or_ping(int x)
{
if(x%4==0)
{
if(x%100==0)
if(x%400!=0)
return 0;
return 1;
}
else return 0;
}
int yue_r(int n,int y)
{
if(y==2)
{
if(run_or_ping(n)==1)
return 29;
else return 28;
}
else if(y==4||y==6||y==9||y==11)
return 30;
else return 31;
}