Python巧算天数
2020-06-30
电脑报 2020年18期
偶然看到《最强大脑》的一期节目,主持人只要随便说出某年某月某日,嘉宾选手马上能算出来这一天是一年中的第几天,让观众和评委都赞叹不已,看完节目后的我想是否可以编写一个程序完成这个计算呢。
做任何题目之前我们都要先考虑一下题目的问题和基本的思路,以及题目中会出现的一些问题或者是陷阱……
程序中需要自行输入年、月、日,然后输出天数。接下来就要思考如何计算出天数呢?有几点提示,首先年份是要区分闰年和非闰年,根据闰年还是非闰年确定2月份的天数是28天还是29天,并且输入的月份必须在1到12之间,否则需要报错,如图1。
在構思编程时就需要综合考虑解决这些问题了。我们先计算出每个月的合计天数,比如说1月一共有31天,1月到2月一共有59天(暂且把2月设置为28天),1月到3月一共有90天,一直计算出十二个月的。然后这时我们根据月份和日期大致计算出天数。当输入月份大于2月份时,还需要考虑是否为闰年的情况,如果闰年的话,2月份需要加一天。在计算闰年时可以参考上一期《计算闰年》的知识点注意“百年不闰,四百年再闰”的世纪闰年情况。
分析清楚情况之后开始动手写代码了。大家也可以先自己编写然后和我写的对比一下。方法是有很多种的,但是最终效果应该一致。欢迎大家提出自己不同的想法,如图2、图3。