#include <stdio.h>
int main(void)
{
int year,month,day,yearmax,year1,month1,day1,year0,month0,days,day0,months;
int n,yearmin,j,b,c,d;
int mmax,mmin;
int e,f,g,h,l,p,q,i,a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
printf("请输入两个日期,格式为2000.01.01 2021.01.01\n");
scanf("%d.%d.%d %d.%d.%d",&year,&month,&day,&year1,&month1,&day1);
if(year<year1)
year0=year1-year;
else
year0=year-year1;
if(year<year1)
yearmax=year1;
else
yearmax=year;
if(year<year1)
yearmin=year;
else
yearmin=year1;
j=yearmin;
n=0;
while (yearmin<=j&&j<=yearmax)
{
b=j%4;
c=j%100;
d=j%400;
j++;
if(b==0&&c!=0||d==0)
n++;
}
if(year<year1&&month>month1||year<year1&&month==month1&&day>day1||year>year1&&month<month1)
year0=year=-1;
if(month<month1)
mmin=month;
else
mmin=month1;
if(month<month1)
mmax=month1;
else
mmax=month;
if(year==year1&&month<month1&&day>day1)
{
p=day;
month0=mmax-mmin;
e=mmin;
day0=0;
while (mmin<=e&&e<mmax)
{
day0=day0+a[e-1];
e++;
}
q=p-day1;
day0=day0-q;
day0=+day0+year0*365+n;//年
printf("相差%d年,%d月,%d日。\n",year0,month0,days);
printf("共计相差%d日。\n",day0);
printf("其中有%d个闰年\n",n);
return 0;
}
month0=mmax-mmin;
e=mmin;
day0=0;
while (mmin<=e&&e<mmax)
{
day0=day0+a[e-1];
e++;
}//月(数组算法)
if (day<day1)
days=day1-day;
else
days=day-day1;//日
day0=days+day0+year0*365+n;//年
printf("相差%d年,%d月,%d日。\n",year0,month0,days);
printf("共计相差%d日。\n",day0);
printf("其中有%d个闰年\n",n);
return 0;
}