定义一个名为zellerGrear, monith, date)的函数,参数为年、月、日。通过这个函敬计算并返回该日期是星期几。在同一源程序中,使用键控输入年、月、日,验证该函数是否能正确计算出输入的日期为星期几。
def getWeekday(year, month, day):
"""
计算给定日期是星期几
:param year: 年份
:param month: 月份
:param day: 日期
:return: 星期几(0表示星期天,1表示星期一,以此类推)
"""
month_days = [31, 28 + is_leap_year(year), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
total_days = year * 12 + month_days[month - 1] + day
weekday = (total_days + year - 1 + (year - 1) // 4 - (year - 1) // 100 + (year - 1) // 400 +
(year - 1) // 400 - (year - 1) // 1000 + (year - 1) // 10000) % 7
return weekday
def is_leap_year(year):
"""
判断是否为闰年
:param year: 年份
:return: True 表示是闰年,False 表示不是闰年
"""
return year % 4 == 0 and year % 100 != 0 or year % 400 == 0
# 测试函数
year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day = int(input("请输入日期:"))
weekday = getWeekday(year, month, day)
print("{0}年{1}月{2}日是星期{3}".format(year, month, day, weekday))