a263.
日期差幾天
--
板橋高中練習題
| From: [111.254.219.147] |
發表日期
:
2014-10-04 17:53
#include<cstdio>
void swap(int a[]){
int temp=a[0];
a[0]=a[1],a[1]=temp;
}
int po(int x){
if((x%4==0&&x%100!=0)||(x%400==0)) return 1;
else return 0;
}
int re(int a,int b,int c){
int x2=0;
if(a<8){
if(a==2) x2=28+po(c)-b;
else if(a%2) x2=31-b;
else x2=30-b;
}
else{
if(a%2==0) x2=31-b;
else x2=30-b;
}
return x2;
}
int bi(int a,int b,int c){
int x1=0;
for(int i=a+1;i<=12;i++)
{ if(i<8)
{
if(i==2) x1+=28+po(c);
else if(i%2) x1+=31;
else x1+=30;
}
else{
if(i%2==0) x1+=31;
else x1+=30;}
}
x1+=re(a,b,c);
return x1;
}
int main(){
int a[2],b[2],c[2];
while(~scanf("%d%d%d%d%d%d",&a[0],&b[0],&c[0],&a[1],&b[1],&c[1])){
if(a[0]==a[1]){int x1,x2;
x1=bi(b[0],c[0],a[0]);
x2=bi(b[1],c[1],a[1]);
printf("%d\n",(x1-x2>0?x1-x2:x2-x1));
}
else{int x3=0;
if(a[0]>a[1]) swap(a),swap(b),swap(c);
for(int i=a[0]+1;i<a[1];i++)
x3+=365+po(i);
x3+=(bi(b[0],c[0],a[0]))+(365+po(a[1])-bi(b[1],c[1],a[1]));
printf("%d\n",x3);
}
}} //我的做法不是很好,但還是能AC,請厲害的高手指出還能做什麼改變