请用 Python 编写一个程序,用于计算并输出指定日期在当年中的第几天。
考察说明
考查日期处理与闰年判断的编程实现能力。
回答思路
- 【回答框架 1】首先明确输入格式,通常为年、月、日三个整数,然后定义平年每月天数列表,如[31,28,31,30,31,30,31,31,30,31,30,31]。
- 【回答框架 2】判断是否为闰年:能被4整除但不能被100整除,或者能被400整除。若为闰年,将2月天数改为29。
- 【回答框架 3】计算第几天:累加该月之前所有月份的天数,再加上当前日。例如输入2024年3月1日,累加1月和2月天数(31+29)再加1,得61。
- 【回答框架 4】输出结果即可。需注意输入合法性校验,如月份在1-12之间,日期不超过当月天数。
- 【回答框架 5】复杂度为O(1),仅需常数时间计算。
- 【关键点 1】闰年判断条件:能被4整除且不能被100整除,或能被400整除。
- 【关键点 2】使用列表存储每月天数,便于累加。
- 【关键点 3】累加天数时先加上前几个月的总天数,再加当月日数。
- 【易错点 1】容易忽略闰年2月有29天,导致计算错误。
- 【易错点 2】输入月份或日期不合法时未做校验,可能产生异常结果。