您的位置:首页 > 其它

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

2014-02-28 20:25 232 查看
/*
* 程序的版权和版本声明部分
* 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;
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  struct