#include <stdio.h>
#include <stdlib.h>
#include <math.h>
#define ISYEARP(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
};
int dayofyear[2]={365,366};
long yeararry[50001];
typedef struct date{
int year;
int month;
int day;
}date;
void countyear(){
int i;
yeararry[1]=365;
for(i=1;i<5001;i++)
{
yeararry[i+1]=yeararry[i]+dayofyear[ISYEARP(i)];
}
}
long countday(date date1)
{
long cnt=0;
int i=0;
cnt=cnt+yeararry[date1.year];
for(i=1;i<=date1.month;i++)
{
cnt=cnt+dayofMonth[i-1][ISYEARP(date1.year)];
}
cnt=cnt+date1.day;
return cnt;
}
void main()
{
date date1,date2;
long day1,day2;
countyear();
while(scanf("%4d%2d%2d",&date1.year,&date1.month,&date1.day)!=EOF)
{
scanf("%4d%2d%2d",&date2.year,&date2.month,&date2.day);
day1=countday(date1);
day2=countday(date2);
printf("%d",abs(day1-day2)+1);
}
}
统一基准,然后预处理!
09-23
09-23