/*
*copyright (c) 2014, 烟台大学计算机学院.
*All rights reserved.
*文件名称:test.cpp
*作者:陆云杰
*完成日期:2014年12月19日
*版本号:v1.0
*
*
*问题描述:两个人的生日之差
*程序输入:两个人的生日
*程序输出:日期差
*/
#include <iostream>
using namespace std;
int DATE(int year,int month,int day);
struct Date
{
int year;
int month;
int day;
};
int main()
{
Date date1,date2;
int d;
cout<<"请输入第一个人的生日:"<<endl;
cin>>date1.year>>date1.month>>date1.day;
cout<<"请输入第二个人的生日:"<<endl;
cin>>date2.year>>date2.month>>date2.day;
DATE(date1.year,date1.month,date1.day);
DATE (date2.year,date2.month,date2.day);
if((date1.month>=date2.month)&&(date1.day>date2.day))
{
d=DATE(date1.year,date1.month,date1.day)-DATE(date2.year,date2.month,date2.day)+1;
}
else d=DATE(date2.year,date2.month,date2.day)-DATE(date1.year,date1.month,date1.day)+1;
cout<<"他们两人的生日相差"<<d<<"天"<<endl;
return 0;
}
int DATE(int year,int month,int day)
{
int days=0,i;
int a[12]= {31,28,31,30,31,30,31,31,30,31,30,31};
if(month<=2)
days=31+day;
else if((year%4==0&&year%100!=0)||(year%400==0))
{
for(i=2; i<month-1; i++)
{
days+=a[i];
}
days+=31+29+day;
}
else
{
for(i=0; i<month-1; i++)
{
days+=a[i];
}
days+=day;
}
return days;
}
学习心得:对刚才的函数的进一步运用!