题解
2024-05-07 18:47:40
发布于:北京
7阅读
0回复
0点赞
以1971年1月1日为基准,分别判定两个日期是1971年1月1日后的第多少天,再做差即可得出日期差。
#include <iostream>
#include <bits/stdc++.h>
using namespace std;
int qiuday(int y,int m, int d){
int md[13] = {0,31,28,31,30,31,30,31,31,30,31,30,31};
int d1 = (y - 1971) * 365;
for(int i = 1971; i < y;i++){
if(i%40&&i%100!=0||i%4000){
d1++;
}
}
for(int i = 1; i < m;i++){
d1 += md[i];
}
if(m>2){
if(y%40&&y%100!=0||y%4000){
d1++;
}
}
d1+=d;
return d1;
}
int main(){
int y1,y2,m1,m2,d1,d2;
scanf("%d-%d-%d %d-%d-%d",&y1,&m1,&d1,&y2,&m2,&d2);
cout << abs(qiuday(y1,m1,d1)-qiuday(y2,m2,d2));
return 0;
}
这里空空如也
有帮助,赞一个