创建一个 Python 类,支持日期的加减操作

Document 对象参考手册 Python3 实例

我们将创建一个 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)

代码解析:

  1. __init__ 方法:初始化 Date 类,接受年、月、日作为参数,并将其转换为 datetime 对象。
  2. __add__ 方法:重载加法运算符 +,允许日期对象与天数相加,返回一个新的 Date 对象。
  3. __sub__ 方法:重载减法运算符 -,允许日期对象与天数相减,返回一个新的 Date 对象。
  4. __str__ 方法:重载字符串表示方法,返回日期的格式化字符串。

输出结果:

初始日期: 2023-10-01
加 10 天后的日期: 2023-10-11
减 5 天后的日期: 2023-09-26

Document 对象参考手册 Python3 实例