欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

python:输日期,查周几

时间:2023-06-03
给定年月日,求星期几。已知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"

样例输入

62017 2 292017 13 20 1 1-2 3 42017 10 182015 12 31

样例输出

IllegalIllegalSaturdayWednesdayWednesdayThursday

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 -1t=''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 += 'Illegaln'print(t)

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。