两人生日相差几天?

来源:互联网 发布:python爬虫书籍 知乎 编辑:程序博客网 时间:2024/04/30 00:06
#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;}

输出结果:




0 0
原创粉丝点击