判断某天为此年度的第几天
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)