问题及代码
/*
* Copyright (c) 2014, 烟台大学计算机学院
* All rights reserved.
* 文件名称:test.cpp
* 作 者:辛彬
* 完成日期:2014年 12 月 22 日
* 版 本 号:v1.0
*
* 问题描述: 输入两个人的生日,求出他们相差多少天。
* 输入描述:两个人的出生年、月、日。
* 程序输出:相差的天数;
*/
#include <iostream>
using namespace std;
struct Date
{
int year;
int month;
int day;
};
int dates(int year,int month,int day)
{
int i,days=1,p=0;
for(i=1900;i<year;i++)
{
days+=365;
if((i%4==0&&i%100!=0)||i%400==0)
p++;
}
int m[13]= {0,31,28,31,30,31,30,31,31,30,31,30,31};
for(i=0; i<month; i++)
days+=m[i];
if(((year%4==0&&year%100!=0)||year%400==0)&&month>2)
days++;
days=days+day+p;
return days;
}
int main()
{
Date date1,date2;
cout<<"input one's year,month,day:";
cin>>date1.year>>date1.month>>date1.day;
cout<<"another one:";
cin>>date2.year>>date2.month>>date2.day;
int t;
t=dates(date2.year,date2.month,date2.day)-dates(date1.year,date1.month,date1.day);
if(t<0)
t=-t;
cout<<"他们的生日相差"<<t<<"天";
return 0;
}
运行结果:
学习感悟:一开始还不知道怎么计算日期的差,毕竟牵扯到不同的年份,看了贺老师的代码才知道可以以1900年作为初始年来计算,我果然还是太low了