计算两个人的出生日期相差的天数

来源:互联网 发布:油画制作软件 编辑:程序博客网 时间:2024/05/22 13:00
/** 程序的版权和版本声明部分* Copyright (c)2013, 烟台大学计算机学院学生* All rightsreserved.* 文件名称: fibnacci.cpp* 作    者:高古尊* 完成日期:2014年2月27日* 版本号: v1.0** 输入描述:* 问题描述:计算两个人的出生日期相差的天数* 程序输出:* 问题分析:*/#include <iostream>using namespace std;struct Date{    int year[2];    int moth[2];    int day[2];};Date date;int day(int,int,int);int main(){    int days,a=0,m,t;    cout<<"请输入两个人的生日,";    cout<<"甲:";    cin>>date.year[0]>>date.moth[0]>>date.day[0];    cout<<"乙:";    cin>>date.year[1]>>date.moth[1]>>date.day[1];    if(date.year[1]<date.year[0])    {        t=date.year[1];        date.year[1]=date.year[0];        date.year[0]=t;        t=date.moth[1];        date.moth[1]=date.moth[0];        date.moth[0]=t;        t=date.day[1];        date.day[1]=date.day[0];        date.day[0]=t;    }    for(m=date.year[0]; m<date.year[1]; m++)    {        if((m%4==0&&m%100!=0)||(m%400==0))        {            a++;        }    }    days=(date.year[1]-date.year[0])*365+a+day(date.year[1],date.moth[1],date.day[1])-         day(date.year[0],date.moth[0],date.day[0]);    if(days<0)    {        days*=-1;    }    cout<<"两人出生相差"<<days<<"天。";    return 0;}int day(int year,int moth,int day){    int moth2;    int days;    if((year%4==0&&year%100!=0)||(year%400==0))        moth2=29;    else        moth2=28;    if(moth==3||moth==5||moth==7)    {        days=(moth-1)*30+day-(30-moth2)+(moth-1)/2;    }    else    {        if(moth==2||moth==4||moth==6)        {            days=(moth-1)*30+day-(30-moth2)+moth/2;        }        else        {            if(moth==8||moth==10||moth==12)            {                days=4*31+2*30+moth2+(moth-8)*31-(moth-8)/2+date.day;            }            else            {                if(moth==9||moth==11)                {                    days=4*31+2*30+moth2+31+(moth-8)*30+(moth-9)/2+date.day;                }                else                {                    if(moth==1)                    {                        days=day;                    }                    else                    {                        days=31+day;                    }                }            }        }    }    return days;}

0 0