if len ( train_data ) == 8: tra_dat = train_data[0:4] + '-' + train_data[4:6] + '-' + train_data[6:8] year = eval(train_data[0:4]) if eval(train_data[4]) != 0: month = eval(train_data[4:6]) else: month = eval(train_data[5]) if eval(train_data[6]) != 0: day = eval(train_data[6:8]) else: day = eval(train_data[7]) if month < 1 or month > 12 or day < 0 or day > 31: print('出发日期输入错误!') #日期不在1-12个月之内并且不在1-31天之内 elif month in [1, 3, 5, 7, 8, 10, 12]: k[0] = 1 elif month in [4, 6, 9, 11]: if day < 31: k[0] = 1 else: print('出发日期输入错误!') #大小月的每月天数判断 else: if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0: if day < 30: k[0] = 1 else: print('出发日期输入错误!') #判断年份是否为闰年 else: if day < 29: k[0] = 1 else: print('出发日期输入错误!') #2月份至多29天 else: print('出发日期输入错误!')
把if的地方基本都注释了一下,如下:
if len ( train_data ) == 8: //判断train_data的长度是否等于8
tra_dat = train_data[0:4] + '-' + train_data[4:6] + '-' + train_data[6:8]
year = eval(train_data[0:4])//取前四位的值为年
if eval(train_data[4]) != 0: //判断第五个字符是不是0,如果不是0,就说明月份需要第四和第五个字符来转换
month = eval(train_data[4:6])
else:
month = eval(train_data[5])
if eval(train_data[6]) != 0: //判断第七个字符是不是0,如果不是0,就说明日期需要第七和第八个字符来转换
day = eval(train_data[6:8])
else:
day = eval(train_data[7])
if month < 1 or month > 12 or day < 0 or day > 31: //判断月份是否在1-12范围内,日期是否在1-31范围内
print('出发日期输入错误!')
#日期不在1-12个月之内并且不在1-31天之内
elif month in [1, 3, 5, 7, 8, 10, 12]:
k[0] = 1
elif month in [4, 6, 9, 11]:
if day < 31:
k[0] = 1
else:
print('出发日期输入错误!')
#大小月的每月天数判断
else:
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0: //判断是否是闰年
if day < 30:
k[0] = 1
else:
print('出发日期输入错误!')
#判断年份是否为闰年
else:
if day < 29: //判断日期是否小于29
k[0] = 1
else:
print('出发日期输入错误!')
#2月份至多29天
else:
print('出发日期输入错误!')
这一段就是一个判断输入日期合不合理的程序,如果不合理就输出“出发日期输入错误!”。输入形式为 train_data = '20210517',首先提取了其中的年月日,然后根据月份的31天,30天,以及闰年的2月只有28天来判断month,day合不合理
print('出发日期输入错误!')
这不就是在判断出发的日期有没有问题的吗。。。
感谢各位大佬,我是刚入门的小白,实在不懂来请教各位大佬
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632