日付の加算・減算操作をサポートする Python クラスを作成します
Python クラスを作成しますDateこのクラスは日付の加算・減算操作をサポートします。datetime モジュールを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クラスは、年・月・日を引数として受け取り、それを datetimedatetimeオブジェクトに変換します。__add__メソッド:加算演算子のオーバーロード+日付オブジェクトに日数を加算できるようにし、新しい datetimeDateオブジェクトを返します。__sub__メソッド:減算演算子のオーバーロード-日付オブジェクトから日数を減算できるようにし、新しい datetimeDateオブジェクトを返します。__str__メソッド:文字列表現メソッドをオーバーロードし、日付のフォーマット済み文字列を返します。
出力結果:
初始日期: 2023-10-01 加 10 天后的日期: 2023-10-11 减 5 天后的日期: 2023-09-26その他の拡張
Python3 サンプル