0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

最小の開始日と最大の終了日の期間の日数を計算する【Python】

Posted at

説明

  1. リスト内包表記を使って、date_list内の全てのstart_dateend_dateの値をdatetimeオブジェクトに変換し、datetimesリストに格納します。
  2. min()max()関数を使って、datetimesリストから最小の日付(最も早い開始日)と最大の日付(最も遅い終了日)を取得します。
  3. max_datemin_dateの差を計算することで、二つの日付の間の日数を取得します。days属性を使うことで、その差が日数で表現されます。
    +1は、開始日と終了日を含めるために加算されています。
from datetime import datetime

date_list = [
  {'start_date': '2024/04/01', 'end_date': '2024/04/30'},
  {'start_date': '2024/05/01', 'end_date': '2024/05/31'},
  {'start_date': '2024/06/01', 'end_date': '2024/06/30'},
  {'start_date': '2024/07/01', 'end_date': '2024/07/31'},
]

# 日付文字列を datetime オブジェクトに変換し、リストに格納
datetimes = [
  datetime.strptime(date_dict[key], '%Y/%m/%d')
  for date_dict in date_list
  for key in ['start_date', 'end_date']
]

# 最小の開始日と最大の終了日を取得
min_date = min(datetimes)
max_date = max(datetimes)

# 2つの日付の間の日数を計算
total_days = (max_date - min_date).days + 1 # +1 は両端を含むため

print("最小の日付:", min_date) # 最小の日付: 2024-04-01 00:00:00
print("最大の日付:", max_date) # 最大の日付: 2024-07-31 00:00:00
print("合計日数:", total_days) # 合計日数: 122
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?