定义函数,计算日期为多少

定义一个名为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))