Pythonで日付範囲を扱う方法はいくつかありますが、ここでは主にdatetime
とtimedelta
を使用した方法を紹介します。
datetimeとtimedeltaを使用した方法
まずは、datetime
とtimedelta
を使用して日付範囲を生成し、それをforループで回す基本的な方法を見てみましょう。
from datetime import date, timedelta
d1 = date(2017,4,1)
d2 = date(2018,3,31)
for i in range((d2 - d1).days + 1):
date = d1 + timedelta(i)
# dateを使った処理
このコードでは、d1
とd2
の間の日付を一日ずつ増やしながらループを回しています。ループ内でdate
を使って必要な処理を行うことができます。
ジェネレータを使用した方法
次に、ジェネレータを使用して日付範囲を生成する方法を見てみましょう。
from datetime import date, timedelta
def date_range(start, stop, step = timedelta(1)):
current = start
while current < stop:
yield current
current += step
for date in date_range(date(2017, 4, 1), date(2017, 4, 5)):
# dateを使った処理
print(date)
このコードでは、date_range
というジェネレータ関数を定義しています。この関数は、指定された開始日から終了日までの日付を一日ずつ(または指定されたステップ数だけ)増やしながら生成します。このジェネレータをforループで回すことで、指定した範囲の日付を一つずつ取り出すことができます。
以上、Pythonで日付範囲を扱う基本的な方法を紹介しました。日付データを扱う際には、これらの方法が役立つでしょう。