创建一个 Python 类,支持日期的加减操作
我们将创建一个 Python 类 Date
,该类支持日期的加减操作。我们将使用 datetime
模块来处理日期的加减操作,并确保日期的格式正确。
实例
from datetime import datetime, timedelta
class Date:
def __init__(self, year, month, day):
self.date = datetime(year, month, day)
def __add__(self, days):
new_date = self.date + timedelta(days=days)
return Date(new_date.year, new_date.month, new_date.day)
def __sub__(self, days):
new_date = self.date - timedelta(days=days)
return Date(new_date.year, new_date.month, new_date.day)
def __str__(self):
return self.date.strftime('%Y-%m-%d')
# 示例使用
date = Date(2023, 10, 1)
print("初始日期:", date)
date_plus_10 = date + 10
print("加 10 天后的日期:", date_plus_10)
date_minus_5 = date - 5
print("减 5 天后的日期:", date_minus_5)
class Date:
def __init__(self, year, month, day):
self.date = datetime(year, month, day)
def __add__(self, days):
new_date = self.date + timedelta(days=days)
return Date(new_date.year, new_date.month, new_date.day)
def __sub__(self, days):
new_date = self.date - timedelta(days=days)
return Date(new_date.year, new_date.month, new_date.day)
def __str__(self):
return self.date.strftime('%Y-%m-%d')
# 示例使用
date = Date(2023, 10, 1)
print("初始日期:", date)
date_plus_10 = date + 10
print("加 10 天后的日期:", date_plus_10)
date_minus_5 = date - 5
print("减 5 天后的日期:", date_minus_5)
代码解析:
__init__
方法:初始化Date
类,接受年、月、日作为参数,并将其转换为datetime
对象。__add__
方法:重载加法运算符+
,允许日期对象与天数相加,返回一个新的Date
对象。__sub__
方法:重载减法运算符-
,允许日期对象与天数相减,返回一个新的Date
对象。__str__
方法:重载字符串表示方法,返回日期的格式化字符串。
输出结果:
初始日期: 2023-10-01 加 10 天后的日期: 2023-10-11 减 5 天后的日期: 2023-09-26