Python程序开发之简单小程序实例
(2)
一、项目功能
根据用户输入的年月日,判断输入的这个日期是这一年的第几天。
二、项目分析
要计算一个日期是当年所处的天数,首先要确定月份,然后判断输入的月份前面有几个月,把这几个月份的天数相加,再加上用户输入的日,即可得到日期所处的天数。例如,以2022年4月1日为例,要计算此日期的所处天数,我们应该先把前3个月的天数加起来,然后再加上1天即该年的第几天。但在特殊情况下,比如判断所输入的年份是否是闰年,如果是润年,那么我们就要考虑当用户输入的月份大于2时,需考虑多加一天。
三、程序源代码
#!/usr/bin/python3.6
# -*- coding: GBK -*-
print ('请输入要计算的日期')
year = int(input('年:'))
month = int(input('月:'))
day = int(input('日:'))
months = (0,31,59,90,120,151,181,212,243,273,304,334)
if 0 < month <= 12:
days_sum = months[month - 1]
else:
print ('您输入的日期有误!')
days_sum += day
leap = 0
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
leap = 1
if (leap == 1) and (month > 2):
days_sum += 1
print ('您输入的日期是该年份的第 %d 天.' % days_sum)
四、代码解释:
在程序的第一行为引用python版本,本实例为python3.6
第二行是程序编码引用,因为在程序中包含有中文字符,所以必须引用GBK,否则就会报错。
第三、四、五、六行为提示用户输入年月日并定义了3个变量用存放用户所输入的数。
第七行定义了一个常量数组,代表1年12个月的每个月在当年所处天数。数组的第一个元素的下标从0开始,即months(0)=0,months(1)=31,……,months(11)=334。例如,如果用户输入的月份是1月份,日期所处的天数就是用户所输入年月日中的日,不需要加前面的月份数,因为每年都是从1月开始的,如果是2月份,那就要加上1月份的天数31,然后再加上用户所输入年月日中的日。数组中的数字从第二个元素开始就是前一元素值加上对应的月份天数,
months(0)=0
1月份的某一天(day)在该年份中所处的天数为:months(0)+day
months(1)= months(0)+1月份的天数=0+31=31
2月份的某一天(day)在该年份中所处的天数为:months(1)+day
months(2)= months(1)+2月份的天数=31+28=59
3月份的某一天(day)在该年份中所处的天数为:months(2)+day
months(3)= months(2)+3月份的天数=59+31=90
4月份的某一天(day)在该年份中所处的天数为:months(3)+day
……
第八、九、十、十一行为判断语句,用于处理用户输入的月份是否介于1至12之间,如果是,则用变量days_sum存放数组months中对应的元素数据;如果不是,则提示用户输入的数据有误。
第十二行用变量days_sum存放计算出的所处天数。
第十四、十五行为判断用户输入的年份是否是润年,如果是润年,则用变量leap=1表示。
第十六、十七行判断当输入的年份为润年且月份大于2时,变量days_sum的值加1,因为润年的2月份的天数是29天,平常的是28天。
五、运行
1、提示用户输入日期
输入2022年6月20日
输出结果:
下一篇:《Python程序开发之简单小程序实例(3)》
更多精彩内容将在以后的章节分享给朋友们,请添加好友至收藏,欢迎点赞并关注后期内容更新!
| 留言与评论(共有 0 条评论) “” |