求两人生日相差多少天

/*  
*Copyright(c)2014,烟台大学计算学院  
*All  rights reserved.  
*文件名称:test.cpp  
*作者:李晓凡  
*完成日期:2014年12月17日  
*版本号:v1.0  
*  
*问题描述:两人生日相差多少天 
*输入描述:两个人的 出省 年月日
*程序输出:两人出生年月日相差的天数
*/
#include <iostream>

using namespace std;
struct Date
{
    int year;
    int month;
    int day;
}date1,date2;
int main()
{
    int i;
    cout<<"input year1,month1,day1:";
    cin>>date1.year>>date1.month>>date1.day;
    int days1,days2;
    //计算days
    days1=0;
    days2=0;
    if((date1.year%4==0 && date1.year%100!=0) || date1.year%400==0)
        {
            for(i=1;i<date1.month;i++)
            {
                if(i==4 || i==6 || i==9 || i==11)
                   days1+=30;
                   else if(i==2)
                    days1+=29;
                   else days1+=31;
            }
        }
        else
        {
             for(i=1;i<date1.month;i++)
            {
                if(i==4 || i==6 || i==9 || i==11)
                   days1+=30;
                   else if(i==2)
                    days1+=28;
                   else days1+=31;
            }
        }
        days1+=date1.day;
        cout<<"input year2,month2,day2:";
    cin>>date2.year>>date2.month>>date2.day;
    if((date2.year%4==0 && date2.year%100!=0) || date2.year%400==0)
        {
            for(i=1;i<date2.month;i++)
            {
                if(i==4 || i==6 || i==9 || i==11)
                   days2+=30;
                   else if(i==2)
                    days2+=29;
                   else days2+=31;
            }
        }
        else
        {
             for(i=1;i<date2.month;i++)
            {
                if(i==4 || i==6 || i==9 || i==11)
                   days2+=30;
                   else if(i==2)
                    days2+=28;
                   else days2+=31;
            }
        }
        days2+=date2.day;
       if(date2.year==date1.year)
       {
           if(days2>days1)
            days1=days2-days1;
           else days1=days1-days2;
           cout<<"两人生日相差"<<days1<<"天"<<endl;
       }
       else
            if(date2.year>date1.year)
        {
            if((date1.year%4==0 && date1.year%100!=0) || date1.year%400==0)
                days1=366-days1;
            else days1=365-days1;
             for(date1.year=date1.year+1;date1.year<date2.year;date1.year++)
             {
                 if((date1.year%4==0 && date1.year%100!=0) || date1.year%400==0)
                    days1+=366;
                 else days1+=365;
             }
             days1+=days2;
             cout<<"两人生日相差"<<days1<<"天"<<endl;
        }
        else
        {
             if((date2.year%4==0 && date2.year%100!=0) || date2.year%400==0)
                days2=366-days2;
            else days2=365-days2;
             for(date2.year=date2.year+1;date2.year<date1.year;date2.year++)
             {
                 if((date2.year%4==0 && date2.year%100!=0) || date2.year%400==0)
                    days2+=366;
                 else days2+=365;
             }
             days2+=days1;
             cout<<"两人生日相差"<<days2<<"天"<<endl;
        }
    return 0;
}

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值