/
*copyright (c)2014,烟台大学计算机学院
*All rights reserved
*文件名称:123.cpp
*作者:孙春红
*完成日期:2014年12月22日
*版本号:v1.0
*
*问题描述:编写程序,求出两人生日相差多少天。
*输入描述:输入两人的出生年月日。
*程序输出:输出相差多少天。
*/
#include <iostream>
using namespace std;
int day(int,int,int);
struct Date
{
int year;
int month;
int day;
};
int main()
{
Date date;
int d1,d2,d;
cout<<"第一个人的生日日期为:"<<endl;
cin>>date.year>>date.month>>date.day;
d1=day(date.year,date.month,date.day);
cout<<"第二个人的生日日期为:"<<endl;
cin>>date.year>>date.month>>date.day;
d2=day(date.year,date.month,date.day);
d=d2-d1;
if (d<0)
d=-d;
cout<<"两人相差几天:"<<d<<endl;
return 0;
}
int day(int y,int m,int d)
{
int days=0,i,sum;
sum=d;
for(i=1900;i<y;i++)//计算出生年到1990年1月一日的天数
{
days+=365;
if (i%4==0||i%400==0)
{
days++;//如果是闰年加一天
}
}
for (int i=1; i<m; i++)
{
switch (i)
{
case 2:
sum+=(( y%4==0&&y%100!=0||y%400==0)?29:28);
break;
case 4:
case 6:
case 9:
case 10:
case 11:
sum+=30;
break;
default:
sum+=31;
break;
}
}
return sum;
}
运行结果:
知识点总结:
定义结构体类型表示年月日,运用所学知识求相差多少天