这个任务在Python中怎么实现?
时间: 2024-09-26 13:04:28 浏览: 5
在Python中,你可以使用内置的`str.format()`方法来轻松地格式化日期输出。以下是实现该功能的一个简单例子:
```python
def format_date(Y, M, D):
# 检查输入是否合法(这里只做基本校验)
if not (1 <= Y <= 9999 and 1 <= M <= 12 and 1 <= D <= 31):
return "非法日期"
# 根据月份调整天数,考虑闰年和平月的情况
days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
if M == 2 and is_leap_year(Y):
days_in_month[1] = 29
elif M in [4, 6, 9, 11] and D > days_in_month[M - 1]:
return "非法日期"
# 格式化并返回日期
formatted_date = f"{Y}-{M:02d}-{D:02d}"
return formatted_date
def is_leap_year(year):
return year % 4 == 0 and (year % 100 != 0 or year % 400 == 0)
# 测试
print(format_date(2023, 8, 15))
```
这段代码首先检查输入的合法性,然后根据月份计算正确的天数,并使用`str.format()`方法按照指定格式输出日期。注意这里假设闰年的2月有29天。