算法1
分别计算两日期与固定日期的时间差
*注意百年一次的闰年有特殊情况
C++ 代码
#include<iostream>
using namespace std;
int month[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int days(int x)//计算日期差
{
int i;
int y,m,d;//年月日
y=x/10000;
m=x%10000/100;
d=x-y*10000-m*100;
y--;m--;
int cy;
cy=(y/4)*1461-y/400*3-(y%400)/100;
cy=cy+365*(y%4);//计算当前年之前总天数
for(i=0;i<m;i++)
cy+=month[i];//计算当前月之前总天数
if(m>=2&&(y+1)%4==0)
cy++;
if(m>=2&&(y+1)%100==0&&(y+1)%400!=0)
cy--;//注意闰年
cy+=d;//计算当前月天数
return cy;
}
int main()
{
int a,b;
while(cin>>a>>b)
{
if(a>=b)
cout<<days(a)-days(b)+1<<endl;
if(a<b)
cout<<days(b)-days(a)+1<<endl;
}
}