AcWing 3498. 日期差值
原题链接
简单
作者:
binary_0
,
2024-03-13 21:15:09
,
所有人可见
,
阅读 10
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
int date1,date2;
int days[13] = {0,31,29,31,30,31,30,31,31,30,31,30,31};
bool check(int year)
{
if(((year % 4 == 0) && (year % 100 != 0)) || year % 400 == 0)return true;
return false;
}
int main()
{
while(scanf("%d%d",&date1,&date2) == 2)
{
int cnt = 0,cnt1 = 0,cnt2 = 0;
if(date2 < date1)swap(date1,date2);
for(int y = date1 / 10000;y <= 9999;y++)
for(int m = 1;m <= 12;m++)
for(int d = 1;d <= days[m];d++)
{
if(!check(y) && m == 2 && d == 29)break;
cnt++;
if(y * 10000 + m * 100 + d == date1)cnt1 = cnt;
if(y * 10000 + m * 100 + d == date2)
{
cnt2 = cnt;
goto print;
}
}
print:
printf("%d\n",cnt2 - cnt1 + 1);
}
return 0;
}