分析思考过程:
1.从控制台分别输入年、月、日,使用input
2.计算日期,手动计算过程
如:2022年10月16日
1(31)+2(28/29)+3(31)+4(30)+5(31)+6(30)+7(31)+8(31)+9(30) +16
如:2022年9月16日
1(31)+2(28/29)+3(31)+4(30)+5(31)+6(30)+7(31)+8(31) +16
如:2022年8月16日
1(31)+2(28/29)+3(31)+4(30)+5(31)+6(30)+7(31) +16
如:2022年2月16日
1(31) +16
发现,每次计算都会是一个连续性的加法运算,并且这个连续中月份是有规律的
思考:
1.代码中如何能生成连续性的月份数字呢?循环可以生成
2.连续性加法每个月的天数不一样,怎么加?有没有规律?
1/3/5/7/8/10/12-----31天
4/6/9/11--------------30天
2 闰年29天,非闰年28天
3.综上所述,可以写一个循环生成1到目标的月份,根据月份数字判断是多少天,然后累加运算
year =int(input('请输入年:'))
month =int(input('请输入月:'))
day =int(input('请输入日:'))
sum_day = 0
for i in range(1,month):
#这个i代表要加的很多月份数字
if i==1 or i==3 or i==5 or i==7 or i==8 or i==10 or i==12:
sum_day +=31
elif i==4 or i==6 or i==9 or i==11:
sum_day +=30
elif i==2:
#根据月份来判断是否是闰年
if(year%4==0 and year%100!=0)or year%400==0:
sum_day+=29
else:
sum_day+=28
sum_day = sum_day+day
print(f'{year}年{month}月{day}日是{year}年的第{sum_day}天')
1万+

被折叠的 条评论
为什么被折叠?



