sums = 0
year = int(input('请输入年份:'))
while year < 2000 or year > 2021:
print("请输入2000至2021的年份")
year = int(input('请输入年份:'))
mouth = int(input('请输入月:'))
while 1 > mouth or mouth>12:
print('请输入1至12的月份:')
mouth = int(input('请输入月:'))
day = int(input('请输入日:'))
while day>31 or day<1:
print('请输入1到31的日')
day=int(input('请输入日:'))
if year % 4 == 0 or year % 400 == 0:
feb = 29
else:
feb = 28
mouth_day = [0, 31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for i in mouth_day[0:mouth]:
sums = sums + i
today_day = sums + day
print('%d 月 %d 日是 %d 年的第 %d 天。' % (mouth, day, year, today_day))
你不是都已经计算feb了吗,用它跟day做个判断,如果超出了就提示不是一个有效的日期
还有if year % 4 == 0 or year % 400 == 0:这个判断不对,不是求闰年的公式啊
那只要能被400整除肯定能被4整除啊,前面的算式变成多余的了
不能被100整除的规则被你弄哪去了
你可以选择这个>>>
sums = 0
year = int(input('请输入年份:'))
while year < 2000 or year > 2021:
print("请输入2000至2021的年份")
year = int(input('请输入年份:'))
mouth = int(input('请输入月:'))
while 1 > mouth or mouth>12:
print('请输入1至12的月份:')
mouth = int(input('请输入月:'))
day = int(input('请输入日:'))
while day>31 or day<1:
if mouth == 2:
print('请输入1到29的日')
day=int(input('请输入日:'))
else:
print('请输入1到31的日')
day=int(input('请输入日:'))
if 0 < mouth <= 12:
day = int(input('请输入日:'))
if day>31 or day<0:
print('请重新输入')
day= int(input('请输入日:'))
else:
print("请重新输入")
mouth = int(input('请输入月:'))
day = int(input('请输入日:'))
if year % 4 == 0 or year % 400 == 0:
feb = 29
else:
feb = 28
mouth_day = [0, 31, feb, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
for i in mouth_day[0:mouth]:
sums = sums + i
today_day = sums + day
print('%d 月 %d 日是 %d 年的第 %d 天。' % (mouth, day, year, today_day))
day = int(input('请输入日:'))
if mouth==2:
while day>29 or day<1:
print('请输入1到29的日')
day=int(input('请输入日:'))
else:
while day>31 or day<1:
print('请输入1到31的日')
day=int(input('请输入日:'))