任务描述 编写程序完成输入年份和月份,计算该月份的天数(注意闰年)。 测试说明 请注意输入的年月是否合法,如年份为负数或月份不在1--12之间,请给出相应提示: 年份非法. 月份非法.
时间: 2024-09-23 18:13:26 浏览: 31
输入年份,输出该年份2月份的天数
为了编写这样的程序,你可以使用Python语言,因为它的日期处理模块`datetime`非常方便。下面是一个简单的函数,用于计算给定年份和月份的天数,考虑了闰年的规则:
```python
from datetime import datetime
def calculate_days(year, month):
try:
# 尝试创建一个datetime对象
date = datetime(year, month, 1)
# 获取月份的第一天
first_day_of_month = date.replace(day=1)
# 返回该月的天数
days_in_month = first_day_of_month.month
if first_day_of_month.year % 4 == 0 and (first_day_of_month.year % 100 != 0 or first_day_of_month.year % 400 == 0): # 判断是否是闰年
if month in [1, 3, 5, 7, 8, 10, 12]: # 闰年的2月有29天
days_in_month += 1
return days_in_month
except ValueError as e:
if str(e).startswith('month must be in'):
print("月份非法.")
elif str(e).startswith('year must be'):
print("年份非法.")
else:
raise e
# 测试示例
print(calculate_days(2024, 2)) # 输出:29
print(calculate_days(-2024, 2)) # 输出:年份非法.
print(calculate_days(2024, 13)) # 输出:月份非法.
```
这个函数首先尝试创建一个指定年月的日历日期,如果输入非法(比如月份不在1-12范围内或年份是负数),`datetime`库会抛出异常,我们捕获这些异常并提供相应的错误提示。
阅读全文