思路:三种情况
2月29之前
2月29
2月29之后
ac代码:
#include<stdio.h>
#include<bits/stdc++.h>
using namespace std;
int ph(int x)
{
if(x%400==0||(x%4==0&&x%100!=0))
return 1;
return 0;
}
int main()
{
int n;
cin>>n;
while(n--)
{
int x,y,z,flag=0;
scanf("%d-%d-%d",&x,&y,&z);
if(y<2||(y==2&&z<=28))
flag=1;
long long sum=0;
int k;
for(int i=x;;i++)
{
if(flag==1)
{
if(ph(i))
sum+=366;
else
sum+=365;
}
else
{
if(ph(i+1))
sum+=366;
else
sum+=365;
}
if(sum%7==0)
{
if(flag==1||!(y==2&&z==29))
{k=i;
break;}
else
{
if(ph(i+1))
{
k=i;break;
}
}
}
}
cout<<k+1<<endl;
}
return 0;
}