#include <iostream>
using namespace std;
int f( int m, int n,int k);
struct Date
{
int year;
int month;
int day;
};
int main()
{
Date date1,date2;
int days1,days2;
int sum=0,s;//s为两人生日相差天数
cout<<"input year,month,day(please input date1.year<=date2.year!):";
cin>>date1.year>>date1.month>>date1.day;
cin>>date2.year>>date2.month>>date2.day;
days1=f(date1.year,date1.month,date1.day);
days2=f(date2.year,date2.month,date2.day);
for(int year=date1.year+1;year<=date2.year;year++)//判断在date1.year和date2.year中有几个闰年
{
if(year%4==0)
{
if(year&100==0)
{
if(year%400==0)
sum++;
}
else sum++;
}
}
s=(date2.year-date1.year)*365+sum-days1+days2;
if(s<0)
s=0-s;
cout<<s;
return 0;
}
int f( int m, int n,int k)//计算输入日期是这一年的第几天
{
int a;
if(m%4==0)
{
if(m&100==0)
{
if(m%400==0)
a=1;
else a=0;
}
else a=1;
}
else
a=0;
int days;
switch(n)
{
case 1:days=k; break;
case 2:days=k+31;break;
case 3:days=k+60;break;
case 4:days=k+91;break;
case 5:days=k+121;break;
case 6:days=k+152;break;
case 7:days=k+182;break;
case 8:days=k+213;break;
case 9:days=k+244;break;
case 10:days=k+274;break;
case 11:days=k+305;break;
case 12:days=k+335;break;
}
if(a==0&&n>2)
days=days-1;
return days;
}
第一周上机
最新推荐文章于 2013-08-01 23:22:37 发布