日期相差天数
#include<stdio.h>
#include<math.h>
//int m[13]={31,28,31,30,31,30,31,31,90,31,30,31};
int py(int a)
{ int y;
if(a%4==0&&a%100!=0||a%400==0)
y=1;
else y=0;
return y;
}
int pd(int b,int c,int d)
{ int s;
int m[13]={31,28,31,30,31,30,31,31,90,31,30,31};
s=0;
py(b);
if(py(b)==1)
m[1]+=1;
int k;
for(k=0;k<c-1;k++)
s+=m[k];
s+=d;
return s;
}
int main()
{ int n;
scanf("%d",&n);
while(n--)
{ int y1,y2,m1,m2,d1,d2,i,s=0,l1,l2,m,t;
scanf("%d%d%d",&y1,&m1,&d1);
scanf("%d%d%d",&y2,&m2,&d2);
if(y2-y1==0)
{ l1= pd(y1,m1,d1);
l2= pd(y2,m2,d2);
//printf("%d %d\n",l1,l2);
l1=l2-l1;
if(l1<0)
l1=-l1;
printf("%d\n",l1);
}
else
{ if(y2-y1<0)
{t=y2;y2=y1;y1=t;}
for(i=y1,m=0;i<y2;i++)
{ if(py(i)==1)
m+=366;
else
m+=365;
}
l1= pd(y1,m1,d1);
l2= pd(y2,m2,d2);
//printf("%d %d\n",l1,l2);
l1=l2-l1;
if(l1<0)
l1=-l1;
printf("%d\n",l1+m);
}
}
return 0;
}
math 没用上,不知道为啥当时 用abs();没成功,不过这题主要是练习main外面定义函数的。