做一个倒计时器,求一年中任意两天差值,输入 N 组数据进行测试时,输出这两天之间的间隔天数,第二个日期总是在比第一个日期要大。
例如,输入:
2
2019 1 1 2019 1 2
2016 1 1 2016 3 1
输出:
2
61
#include<stdio.h>
#include<stdbool.h>
bool cal(int y);
int main(){
int n;
int y,m1,d1,m2,d2;
int a[12]={31,28,31,30,31,30,31,31,30,31,30,31};
int b[12]={31,29,31,30,31,30,31,31,30,31,30,31};
int sum=0,sum1=0,sum2=0;
bool flag;
scanf("%d",&n);
while(n--){
scanf("%d %d %d %d %d %d",&y,&m1,&d1,&y,&m2,&d2);
if((m1<m2)||(m1==m2&&d1<d2)){
flag=cal(y);
if(!flag){
for(int i=0;i<m1;i++){
sum1+=a[i];
}
sum1+=d1;
for(int i=0;i<m2;i++){
sum2+=a[i];
}
sum2+=d2;
sum=sum2-sum1+1;
printf("%d",sum);
}
if(flag){
for(int i=0;i<m1;i++){
sum1+=b[i];
}
sum1+=d1;
for(int i=0;i<m2;i++){
sum2+=b[i];
}
sum2+=d2;
sum=sum2-sum1+1;
printf("%d",sum);
}
}else{
printf("后一个日期比前一个日期小,请重新输入");
}
}
return 0;
}
bool cal(int y){
bool flag;
if((y%4==0&&y%100!=0)||(y%400==0)){
flag=true;
}else{
flag=false;
}
return flag;
}