Sample Input
4
2019 5 12 Monday
2019 5 14
2019 5 12 Tuesday
2019 12 30
2019 5 12 Friday
1000000000 1 1
1000000000 1 1 Wednesday
2019 5 12
Sample Output
Wednesday
Friday
Thursday
Thursday
题意:规定一年12个月,一月30天,一周5天,给出一天是星期几,求给出的另一天是星期几。
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <string>
#include <cstdio>
#include <cmath>
#include <map>
#include <set>
#include <queue>
using namespace std;
typedef long long ll;
char ss[10][20]={"Monday","Tuesday","Wednesday","Thursday","Friday"};
int main()
{
ll T,n,k;
cin>>T;
while(T--){
ll now,t1,t2,t,y1,y2,m1,m2,d1,d2,flag=0;
char s[20];
memset(s,0,sizeof(s));
scanf("%lld%lld%lld %s",&y1,&m1,&d1,s);
scanf("%lld%lld%lld",&y2,&m2,&d2);
if(y1>y2||(y1==y2&&m1>m2)||(y1==y2&&m1==m2&&d1>d2)){
swap(y1,y2);
swap(m1,m2);
swap(d1,d2);
flag=1;
}
if(y1==y2){
if(m1!=m2)
t=(30-d1)+d2+(m2-m1)*30;
else
t=d2-d1;
}
else{
t1=30-d1+(12-m1)*30;
t2=(m2-1)*30+d2;
t=t1+t2+(y2-y1-1)*12*30;
}
for(int i=0;i<=4;i++){
if(strcmp(ss[i],s)==0){
now=i;
break;
}
}
t=t%5;
if(flag==0)
t=(t+now)%5;
else
t=(now-t+5)%5;
printf("%s\n",ss[t]);
}
return 0;
}