|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
year=int(input('年份:'))
month=int(input('月份:'))
date=int(input('日期:'))
days=0
dates=[31,59,90,120,151,181,212,243,273,304,334,365]
dates2=[31,60,91,121,152,182,213,244,274,305,335,366]
if year%4 ==0:
for i in range(0, 12):
if (month - (i+1)) > 0:
days = dates2[i] + days
elif (month - (i+1)) == 0:
days = days + date
break
else:
for i in range(1,13):
if (month-(i+1))>0:
days=dates[i]+days
elif (month-(i+1))==0:
days=days+date
break
print('这一天是这一年的第',days,'天')
这段代码中存在一些问题。首先,在判断是否为闰年时,只考虑了能被4整除的情况,没有考虑到能被100整除但不能被400整除的情况,这会导致计算出的天数不准确。其次,在计算天数时,当月份为1时,应该加上0天,而不是31天。
下面是修改后的代码:
year = int(input('年份:'))
month = int(input('月份:'))
date = int(input('日期:'))
days = 0
dates = [31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334, 365]
dates2 = [31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335, 366]
if (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
for i in range(0, 12):
if month - (i + 1) > 0:
days = dates2[ i] + days
elif month - (i + 1) == 0:
days = days + date
break
else:
for i in range(1, 13):
if month - (i + 1) > 0:
days = dates[i - 1] + days
elif month - (i + 1) == 0:
days = days + date
break
print('这一天是这一年的第', days, '天')
这个代码会正确地计算出给定日期是这一年的第几天。
|
|