1. ホーム
  2. パイソン

[解決済み】2つの日付の間にあるすべての日付けを印刷する【重複あり

2022-04-05 17:58:42

質問

例えば

from datetime import date

d1 = date(2008,8,15)
d2 = date(2008,9,15)

私は、中間のすべての日付を表示する簡単なコードを探しています。

2008,8,15  
2008,8,16  
2008,8,17  
...  
2008,9,14  
2008,9,15

ありがとうございます。

解決方法は?

こんなことを思いつきました。

from datetime import date, timedelta

start_date = date(2008, 8, 15) 
end_date = date(2008, 9, 15)    # perhaps date.now()

delta = end_date - start_date   # returns timedelta

for i in range(delta.days + 1):
    day = start_date + timedelta(days=i)
    print(day)

出力されます。

2008-08-15
2008-08-16
...
2008-09-13
2008-09-14
2008-09-15

ご質問の内容は、中間の日付を求めていますが、始点と終点を含むという意味だと思いますので、含まれています。 終了日を削除するには、range関数の最後にある"+1"を削除してください。 開始日を削除するには、range関数の先頭に引数1を挿入します。