编写一个日期类的MyDate,拥有年月日的数据,定义MyDate__init__函数实现对象的初始化,在数据不合理时抛出异常
时间: 2024-01-24 18:17:35 浏览: 88
编写类MyDate
下面是一个简单的MyDate类实现:
```python
class MyDate:
def __init__(self, year, month, day):
if not (1 <= month <= 12):
raise ValueError("月份必须在 1 到 12 之间")
if day < 1 or day > self.get_days_in_month(year, month):
raise ValueError(f"{year} 年 {month} 月的天数必须在 1 到 {self.get_days_in_month(year, month)} 之间")
self.year = year
self.month = month
self.day = day
@staticmethod
def get_days_in_month(year, month):
if not (1 <= month <= 12):
raise ValueError("月份必须在 1 到 12 之间")
if month in [1, 3, 5, 7, 8, 10, 12]:
return 31
elif month in [4, 6, 9, 11]:
return 30
elif (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:
return 29
else:
return 28
```
这个类包含了一个初始化方法 `__init__` 和一个静态方法 `get_days_in_month`。`__init__` 方法用于初始化日期对象,如果年、月、日不合理,则抛出异常;`get_days_in_month` 方法用于获取指定年月的天数。
阅读全文