给出两个日期时间,计算这两个日期时间相差的天数。如:2015.04.23和2015.04.27相差3天。
#include<stdio.h>
#include<math.h>
typedef struct{
int year;
int month;
int day;
}Date;
//计算所给日期距离公历开始时间的天数
int fun(Date date){
int a[13]={0,31,59,90,120,151,181,212,243,273,304,334,365};
int b[13]={0,31,60,91,121,152,182,213,244,274,305,335,366};//闰年时
if(((date.year%4==0)&&(date.year%400!=0))||(date.year%100==0))//闰年时
{
return date.year*365+(date.year-1)/4-date.year/100+date.year/400+b[date.month-1]+date.day;
}
else//平年
{
return (date.year*365+date.year/4-date.year/100+date.year/400)+a[date.month-1]+date.day;
}
}
int main()
{
Date date1,date2;
printf("Input the first date:");
scanf("%d %d %d",&(date1.year),&(date1.month),&(date1.day));
printf("Input the second date:");
scanf("%d %d %d", &date2.year,&date2.month,&date2.day);
printf("%d\n",abs(fun(date1)-fun(date2)));
return 0;
}