随机输入一个日期,判断日期是星期几?

#!/usr/bin/env python

#获取天数
def getDays(year,month,day):
    leap_year_month_list = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    nleap_year_month_list = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

    sum_days = 0
    sum_days += day

    if year < 1900:
        for year in range(year,1899):
            if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
                sum_days += 366
            else:
                sum_days += 365

    for iyear in range(1900,year):
        if (iyear % 4 == 0 and iyear % 100 != 0) or iyear % 400 == 0:
            sum_days += 366
        else:
            sum_days += 365

    if year >= 1900:
        if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
            # print("leap_year_month_list",year)
            for i in range(1,month):
                sum_days += leap_year_month_list[i]
                # print(leap_year_month_list[i])
        else:
            # print("nleap_year_month_list",year)
            for i in range(1,month):
                sum_days += nleap_year_month_list[i]
                # print(nleap_year_month_list[i])
    else:
        if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
            # print("leap_year_month_list",year)
            for i in range(month,12):
                sum_days += leap_year_month_list[i]
                # print(leap_year_month_list[i])
        else:
            # print("nleap_year_month_list",year)
            for i in range(month,12):
                sum_days += nleap_year_month_list[i]
                # print(nleap_year_month_list[i])


    return sum_days

#判断日期是否正确
def isDays(year,month,day):
    leap_year_month_list = [0, 31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
    nleap_year_month_list = [0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]

    flag = 0
    if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
        if month > 0 and month <= 12:
            if day > leap_year_month_list[month]:
                flag = 1
        else:
            flag = 1
    else:
        if month > 0 and month <= 12:
            if day > nleap_year_month_list[month]:
                flag = 1
        else:
            flag = 1
    return flag

weeks = ['星期天','星期一','星期二','星期三','星期四','星期五','星期六']

while True:
    year = int(input("请输入一个日期 年:"))
    month = int(input("请输入一个日期 月:"))
    day = int(input("请输入一个日期 日:"))

    flag = isDays(year,month,day)

    if flag == 1:
        print("日期格式错误,请继续输入!")
        continue
    sum_days = getDays(year, month, day)
    print(sum_days)
    day_of_the_week = int(sum_days % 7)
    date = str(year) + '.' + str(month) + '.' + str(day)
    print("%s 星期 %s" % (date,weeks[day_of_the_week]))

 

posted @ 2018-04-26 22:00  你知道  阅读(1425)  评论(0编辑  收藏  举报