#include<stdio.h>
//日期差值
#define ISYEAP(x) x%100!=0 && x%4==0 || x%400==0?1:0
int dayOfmonth[13][2]={
0,0,
31,31,
28,29,
31,31,
30,30,
31,31,
30,30,31,31,31,31,30,30,31,31,30,30,31,31
};
struct Date{
int Day;
int Month;
int Year;
void nextDay()
{
Day++;
if(Day>dayOfmonth[Month][ISYEAP(Year)])
{
Day=1;
Month++;
if(Month>12)
{
Month=1;
Year++;
}
}
}
};
int buf[50001][13][32];//save the orignal days
int Abs(int x)
{
return x<0?-x:x;
}
int main()
{
Date temp;
int cnt=0;
temp.Day=1;
temp.Month=1;
temp.Year=0;
while(temp.Year!=5001)
{
buf[temp.Year][temp.Month][temp.Day]=cnt;
temp.nextDay();
cnt++;
}
int d1,m1,y1;
int d2,m2,y2;
while(scanf("%4d%2d%2d",&y1,&m1,&d1)!=EOF)
{
scanf("%4d%2d%2d",&y2,&m2,&d2);
printf("%d\n",Abs(buf[y2][m2][d2]-buf[y1][m1][d1]));
}
}
计算日期差
最新推荐文章于 2024-04-09 11:03:27 发布