判断某天为此年度的第几天

year = 0
month = 0
day = 0
num = 3
#表示输入类型是否正确,默认为1,即错误
flag = 1

for i in range(0,3):
    """用户输入日期,如果日期格式输入有误,重新输入,最多可以输入3次"""

    date = input("请输入您要查询的日期,日期格式为'yyyymmdd':")

    #把输入的日期进行拆分
    if len(date) == 8:
        try:
            int(date[0:4])
        except ValueError:
            print("请检查你输入的格式是否正确,您还有%d次机会" % (num-1))
           # print("----2----")
            num -= 1
        else:
            year = int(date[0:4])
            try:
                int(date[4:6])
            except ValueError:
                print("请检查你输入的格式是否正确,您还有%d次机会" % (num-1))
            #    print("----3----")
                num -= 1
            else:
                month = int(date[4:6])
                try:
                    int(date[6:8])
                except ValueError:
                    print("请检查你输入的格式是否正确,您还有%d次机会" % (num-1))
             #       print("----4----")
                    num -= 1
                else: 
                     day = int(date[6:8])
                     flag = 0

        if flag == 0:
            break
    else:
        print("请检查你输入的格式是否正确,您还有%d次机会" % (num-1))
       # print("----1----")
        num -= 1

#print("flag=%d" % flag)

#存储平年每个月的天数
day_1 = {
    "1":31,"2":28,"3":31,"4":30,
    "5":31,"6":30,"7":31,"8":31,
    "9":30,"10":31,"11":30,"12":31
    }
#存储闰年每个月的天数
day_2 = {
    "1":31,"2":29,"3":31,"4":30,
    "5":31,"6":30,"7":31,"8":31,
    "9":30,"10":31,"11":30,"12":31
    }

def is_leaf(year):
    """判断日期年份是否为闰年"""
    if (year % 400 == 0) or (year % 4 == 0 and year % 100 != 0):
        return True
    else:
        return False
        
def date_num(year,month,day):
    """计算输入日期是这一年的第几天"""
    day_sum = 0

    if is_leaf(year):
        for i in range(1,month):
           day_sum += day_2[str(i)]
        day_sum += day
    else:
        for i in range(1,month):
           day_sum += day_1[str(i)]
        day_sum += day
    print("%s是次年份的第%d天" % (date, day_sum))

if flag==0:
    date_num(year,month,day)

 

posted @ 2018-11-07 01:21  在哪里我的小熊  阅读(219)  评论(0编辑  收藏  举报