Crear una clase de Python que admita operaciones de suma y resta de fechas
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)
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:
__init__Método: inicializaciónDatede la clase, acepta año, mes y día como parámetros y los convierte endatetimeobjeto.__add__Método: sobrecarga del operador de suma+, permite sumar días a un objeto de fecha y devuelve un nuevoDateobjeto.__sub__Método: sobrecarga del operador de resta-, permite restar días a un objeto de fecha y devuelve un nuevoDateobjeto.__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-26Otras extensiones
Ejemplo de Python3