#include <iostream>
#include <cmath>
using namespace std;
int day(int a,int b,int c);
struct Date
{
int year;
int month;
int day;
};
int main()
{
Date date1,date2;
int sum1,sum2,s=0;
cout<<"请输入第一个人的生日:";
cin>>date1.year>>date1.month>>date1.day;
cout<<"请输入第二个人的生日:";
cin>>date2.year>>date2.month>>date2.day;
sum1=day(date1.year,date1.month,date1.day);
sum2=day(date2.year,date2.month,date2.day);
if(date1.year>date2.year)
{while(date1.year>=date2.year)
{
date1.year--;
if((date1.year%4==0&&date1.year%100!=0)||date1.year%400==0)
s+=366;
else
s+=365;
date1.year--;
}
sum1+=s;
sum1-=sum2;
cout<<"这两人生日相差"<<sum1<<"天。"<<endl;
}
else if(date1.year<date2.year)
{
while(date1.year<=date2.year)
{
date2.year--;
if((date2.year%4==0&&date2.year%100!=0)||date2.year%400==0)
s+=366;
else
s+=365;
date2.year--;
}
sum2+=s;
sum2-=sum1;
cout<<"这两个人生日相差"<<sum2<<"天."<<endl;
}
else cout<<"这两人生日相差"<<fabs(sum1-sum2)<<"天."<<endl;
return 0;
}
int day(int a,int b,int c)
{
int sum=0,n;
for(n=1; n<b; n++)
{
if((a%4==0&&a%100==0)||a%400==0)
{
if(n==1||n==3||n==5||n==7||n==8||n==10||n==12)
sum+=31;
else if(n==2)
sum+=29;
else
sum+=30;
}
else
{
if(n==1||n==3||n==5||n==7||n==10||n==12)
sum+=31;
else if(n==2)
sum+=28;
else
sum+=30;
}
}
sum+=c;
return sum;
}
输出结果: