输入日期判断这一年的第几天。@TOC
先简单的分析它一波:
简单点来说就是从字符串中分离出年份,月份和日:
例如:输入的字符串事20211130,便可以先判断一下输入的字符串是不是八位的,然后前四位是年份后两位事多少号,中间的便是月份。这样我们就可以通过切片获得年月日,但是注意这里获得的都是string类型的,需要int一下才可以进行下面的操作。首先需要判断一下年份,因为闰年366,平年365(闰年判断规则:能被400整除或(被100整除且不被4整除))。然后再制作一个字典把每个月和对应的天数放进去(emmm……这个很简单)然后进行累加求和就可以了!
确定要解决的几件事:
第一件事:判断位数:
while 1:
i = input()
len = len(i)
if (len!=8):
print("请重新输入年份!")
else:
break
第二件事:分离出年月日并转换类型:
year = int(i[0:4])
month = int(i[4:6])
day = int(i[6:8])
第三件事:判断闰年:
if(year%400==0)or((year%4==0)and(year%100!=0)):
print(year,"是闰年")
day = day + 1
else:
print(year,"不是闰年")
dict = {1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31}
第四件事:累加求和
sum = 0
for i in range(1,month):
sum=sum+dict[i]
sum = sum + day
print("这是",year,"的第",sum,"天")