Crear una clase de Python que admita operaciones de suma y resta de fechas

Document 对象参考手册Ejemplo de Python3

Crearemos una clase de PythonDate, esta clase admitirá operaciones de suma y resta de fechas. Usaremosdatetimeel módulo para manejar las operaciones de suma y resta de fechas, y asegurar que el formato de la fecha sea correcto.

Ejemplo

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')

# Uso de ejemplo
date = Date(2023, 10, 1)
print("Fecha inicial:", date)

date_plus_10 = date + 10
print("Fecha después de sumar 10 días:", date_plus_10)

date_minus_5 = date - 5
print("Fecha después de restar 5 días:", date_minus_5)

Análisis del código:

  1. __init__Método: inicializaciónDatede la clase, acepta año, mes y día como parámetros y los convierte endatetimeobjeto.
  2. __add__Método: sobrecarga del operador de suma+, permite sumar días a un objeto de fecha y devuelve un nuevoDateobjeto.
  3. __sub__Método: sobrecarga del operador de resta-, permite restar días a un objeto de fecha y devuelve un nuevoDateobjeto.
  4. __str__Método: sobrecarga del método de representación de cadena, devuelve la cadena formateada de la fecha.

Resultado de salida:

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

Document 对象参考手册Ejemplo de Python3

Otras extensiones