题目描述
已知 1年 1月 1 日是星期一。
现在给定一个日期,请你判断是星期几。
注意闰年的 2 月有 29 天。
满足下面条件之一的是闰年:
年份是 4 的整数倍,而且不是 100 的整数倍;
年份是 400 的整数倍。
月份 1∼12,依次如下所示:
January, February, March, April, May, June, July, August, September, October, November, December
周一至周日依次如下所示:
Monday, Tuesday, Wednesday, Thursday, Friday, Saturday, Sunday
数据范围
1000≤y≤3000,
给定日期保证合法。
每个输入最多包含 100 组数据。
输入样例
9 October 2001
14 October 2001
输出样例
Tuesday
Sunday
标准库-datatime
偷个懒用API做下
import datetime as dt
dates = []
while True:
try:
dates.append(list(input().split()))
except:
break
dic = {
'January': 1,'February':2,'March':3,'April':4,'May':5,'June':6,
'July':7,'August':8,'September':9,'October':10,'November':11,'December':12
}
weekday = {1: "Monday",2: 'Tuesday',3: 'Wednesday',4: 'Thursday',5: 'Friday',6: 'Saturday', 7: 'Sunday'}
for d, m, y in dates:
month = dic[m]
day = int(d)
year = int(y)
date=dt.date(year,month,day)
print(weekday[date.isoweekday()])
函数说明:
data.weekday()
返回一个整数代表星期几,星期一为0,星期天为6。例如, date(2002, 12, 4).weekday() == 2,表示的是星期三。
data.isoweekday()
返回一个整数代表星期几,星期一为1,星期天为7。例如:date(2002, 12, 4).isoweekday() == 3,表示星期三。
参考资料:here