第一周----生日差几天

本文介绍了一个简单的C++程序,该程序用于计算两个人的生日与1900年1月1日之间的天数差,并据此计算两人之间生日相差的具体天数。
/*
* Copyright (c) 2013, 烟台大学计算机学院
* All rights reserved.
* 作    者:申玉迪
* 完成日期:2014 年 3 月 1 日
* 版 本 号:v1.0
*/
#include <iostream>

using namespace std;

struct Date
{
    int year;
    int month;
    int day;
} date;

/*输入两个人的生日,看和1900年1月1日相差多少天,然后在相减*/

int main()
{
    int d1=0,m1=0,y1=0,d2=0,m2=0,y2=0,t,i,j;/*d1,m1,y1代表第一个人的出生年月日,同理d2,m2,d2,
                                              t表示相差天数,i和j分别作为循环的年和月*/
    cout<<"第一个人的出生日期:";
    cin>>date.year>>date.month>>date.day;
    for(i=1900; i<date.year; i++)//算出这年之前到1900年共多少天
    {
        y1+=365;
        if(i%400==0||(i%4==0&&i%100!=0))
        {
            y1++;
        }
    }
    for(j=0; j<date.month; ++j)//算出本年到生日共多少天
    {
        int x;
        if(j==2)
        {
            if(date.year%400==0||(date.year%4==0&&date.year%100!=0))
            {
                x=29;
            }
            else
            {
                x=28;
            }
        }
        else if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)
            x=31;
        else if(j==4||j==6||j==9||j==11)
            x=30;
        else if(j==0)
            x=date.day;
        m1+=x;


    }
    d1=y1+m1;//生日到1900年1月1日共多少天

    cout<<"第二个人的出生日期:";
    cin>>date.year>>date.month>>date.day;
    for(i=1900; i<date.year; i++)
    {
        y2+=365;
        if(i%400==0||(i%4==0&&i%100!=0))
        {
            y2++;
        }
    }
    for(j=0; j<date.month; ++j)
    {
        int x;
        if(j==2)
        {
            if(date.year%400==0||(date.year%4==0&&date.year%100!=0))
            {
                x=29;
            }
            else
            {
                x=28;
            }
        }

        else if(j==1||j==3||j==5||j==7||j==8||j==10||j==12)
            x=31;
        else if(j==4||j==6||j==9||j==11)
            x=30;
        else if(j==0)
            x=date.day;
        m2+=x;

    }

    d2=y2+m2;
    t=d2-d1;
    if(t<0)
    {
        t=-t;//若出现负数,则将其化为正数
    }
    cout<<"两人生日相差"<<t<<"天."<<endl;

}









原来那一大块想用函数的,但试了好久还是不行,就干脆不用了


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值