输入代码:
/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:sum123.cpp
*作 者:林海云
*完成日期:2014年12月23日
*版 本 号:v2.0
*
*问题描述:输入两人生日,求其相差天数
*程序输入:
*程序输出:
*/
#include<iostream>
#include<cmath>
using namespace std;
int day(int y,int m,int d);
struct Date
{
int year;
int mouth;
int day;
};
int main()
{
Date date1,date2;
int sum1,sum2,s=0;
cout<<"请输入第一个人的生日:"<<endl;
cin>>date1.year>>date1.mouth>>date1.day;
cout<<"请输入第二个人的生日:"<<endl;
cin>>date2.year>>date2.mouth>>date2.day;
sum1=day(date1.year,date1.mouth,date1.day);
sum2=day(date2.year,date2.mouth,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(date2.year>=date1.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 y,int m,int d)
{
int sum=0,i;
for(i=1; i<=m; i++)
{
if(i==1||i==3||i==5||i==7||i==8||i==10||i==12)
sum+=31;
else if(i==4||i==6||i==9||i==11)
sum+=30;
else
{
if((y%4==0)&&(y%100!=0)||(y%400==0))
sum+=29;
else
sum+=28;
}
}
sum+=d;
return sum;
}
运行结果:
原文地址:http://blog.csdn.net/linhaiyun_ytdx/article/details/42104905