/*
*Copyright (c)2014,烟台大学计算机与控制工程学院
*All rights reserved.
*文件名称:tr.cpp
*作 者 张伟建
*完成日期:2014年12月22日
*版 本 号:v1.0
*
*问题描述: 两个日期相差多少天
*输入描述: 输入两个日期
*输出描述: 天数
*/
#include <iostream>
using namespace std;
int da(int y ,int m, int d);
struct Date
{
int year;
int month;
int day;
};
int main()
{
Date date1,date2;
int dw;
cout<<"input year,month,day:";
cin>>date1.year>>date1.month>>date1.day;
cin>>date2.year>>date2.month>>date2.day;
dw=da(date1.year,date1.month,date1.day)-da(date2.year,date2.month,date2.day);
if(dw>0)
cout<<dw;
else
cout<<-dw;
return 0;
}
int da(int y ,int m ,int d)
{
int sum=d;
//计算days;
for(int i=1; i<m; i++)
{
switch(i)
{
case 1:
case 3:
case 5:
case 7:
case 8:
case 10:
case 12:
d=31;
break;
case 4:
case 6:
case 9:
case 11:
d=30;
break;
case 2:
d=28;
break;
}
sum+=d;
}
while(y>1900)
{
if((y%4==0&&y%100!=0)||y%400==0)
{
sum=sum+366;
}
else
{
sum=sum+365;
}
y--;
}
return sum;
}