题目:
给你一个日期,请你设计一个算法来判断它是对应一周中的哪一天。
输入为三个整数:day、month 和 year,分别表示日、月、年。
您返回的结果必须是这几个值中的一个 {“Sunday”, “Monday”, “Tuesday”, “Wednesday”, “Thursday”, “Friday”, “Saturday”}。
解答:
class Solution:
def dayOfTheWeek(self, day: int, month: int, year: int) -> str:
#1970.12.31是星期四,只需要算出输入的日期距离1970年12月31日有几天,再加上3后对 7求余,即可得到输入日期是一周中的第几天
week=["Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday","Sunday"]
months=[31,29,31,30,31,30,31,31,30,31,30,31]
presum=[0]*13
for i in range(1,13):
presum[i]=presum[i-1]+months[i-1]
#print(presum)
def judgeYear(year):
if year%400==0 or (year%4==0 and year%100!=0):
return True
return False
days=0
# 输入年份之前的年份的天数贡献
days+=365*(year-1971) + (year-1969)//4
#计算year当年的天数
days+=presum[month-1]+day
if not judgeYear(year) and month>2:
days-=1
return week[(days+3)%7]