接下来,我们先定义需要用到的年、月、日变量,以便稍后从键盘输入。同时,我们已经知道1月有31天,2月在闰年时有29天(平年是28天),所以前两个月的总天数是31+29=60天,第三个月是90天,以此类推。
这样,我们可以根据以上规则来计算任意日期是一年中的第几天。
year=input('year:\n')
year=int(year)
month=input('month:\n')
month=int(month)
day=input('day:\n')
day=int(day)
months=(0,31,59,90,120,151,181,212,243,273,304,334)
在第二部分中,我们需要进行月份和闰年的判断。首先,我们可以添加以下的逻辑:
月份判断:一年中正常只有12个月,如果输入的月份不在1到12之间,就应该提示错误。
闰年判断:根据公历规定,能被400整除的年份,或者能被4整除但不能被100整除的年份为闰年。因此,在判断是否为闰年时,我们可以使
在这段代码中,首先判断年份是否能被400整除,或者能被4整除但不能被100整除,如果是,则为闰年。接着,如果月份大于2,则天数需要多加一天。
通过这样的逻辑,我们可以完善计算日期是一年中的第几天的代码。
if 0<month<=12:
sum =months[month-1]
else:
print('data error')
sum+=day
leap=0
if(year %400 ==0)or ((year%4==0)and(year&100!=0)):
leap=1
if(leap==1)and (month>2):
sum+=1
print('it is the %dth day.'%sum)
下面是一个输入的例子
year:
2015
month:
6
day:
7
it is the 158th day.