给定年月日,求星期几。已知2020年11月18日是星期三。另外,本题有公元0年,这个和真实的纪年不一样
输入
第一行是n(n <=30),表示有n组数据
接下来n行,每行是一组数据。
每行三个整数y,m,d,分别代表年,月,日。(-1000000<=y<=1000000)
若今年是2017年,则往前就是2016年,2015年....一直数到2年,1年,再往前就是0年,-1年,-2年.....
输出
对每组数据,输出星期几,星期几分别用
"Sunday","Monday","Tuesday","Wednesday","Thursday", "Friday","Saturday" 表示
如果月份和日期不合法,输出"Illegal"
样例输入
6 2017 2 29 2017 13 2 0 1 1 -2 3 4 2017 10 18 2015 12 31
样例输出
Illegal Illegal Saturday Wednesday Wednesday Thursday
n=int(input())
week={0:"Wednesday",1:"Thursday", 2:"Friday",3:"Saturday", 4:"Sunday",5:"Monday",6:"Tuesday"}
month={1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
oringal='2020 11 18'
def ifmax(x):
y=x.split()
d,e,f=int(y[0]),int(y[1]),int(y[2])
if d>2020:
return 1
elif d<2020:
return 0
else:
if e>11:
return 1
elif e<11:
return 0
else:
if f>18:
return 1
elif f<18:
return 0
else:
return -1
t=''
for i in range(n):
day=0
month[2]=28
s=input()
ss = s.split()
a, b, c = int(ss[0]), int(ss[1]), int(ss[2])
if (b>=1 and b<=12)and(c>=1 and c<=month[b]):
if ifmax(s)==-1:
t=t+"Wednesday"+'\n'
elif ifmax(s)==1:
if a % 4 == 0 and a % 100 != 0 or a % 400 == 0:
month[2] = 29
for i in range(1, b):
day += month[i]
day += c
day -=323
for j in range(2020,a):
if j % 4 == 0 and j % 100 != 0 or j % 400 == 0:
day += 366
else:
day += 365
t += str(week[day % 7]) + '\n'
else:
if a % 4 == 0 and a % 100 != 0 or a % 400 == 0:
month[2] = 29
for i in range(1,b):
day+=month[i]
day+=c
day=323-day
for j in range(a,2020):
if j % 4 == 0 and j % 100 != 0 or j % 400 == 0:
day += 366
else:
day += 365
t += str(week[(-day) % 7]) + '\n'
else:
t += 'Illegal\n'
print(t)