らくがきちょう

なんとなく ~所属組織/団体とは無関係であり、個人の見解です~

Python で XX 時から YY 時まで ZZ 分間隔で表示する

Python では時間の計算を行う際、timedelta を利用することが出来ます。 timedelta を使うと、例えば「XX 時から YY 時まで ZZ 分間隔で表示する」といったことも簡単に実現出来ます。

XX 時から YY 時まで ZZ 分間隔で表示する

例えば「2020/1/1 10:00 ~ 2020/1/1 11:00 までの間を 5 分間隔で表示する」には以下のようなコードで実現出来ます。

import datetime

date1 = datetime.datetime(year=2020, month=1, day=1, hour=10, minute=0)
date2 = datetime.datetime(year=2020, month=1, day=1, hour=11, minute=0)
delta = datetime.timedelta(minutes=5)

while date1 < date2:
    print(date1)
    date1 = date1 + delta

実行例は以下の通りです。

$ python example.py
2020-01-01 10:00:00
2020-01-01 10:05:00
2020-01-01 10:10:00
2020-01-01 10:15:00
2020-01-01 10:20:00
2020-01-01 10:25:00
2020-01-01 10:30:00
2020-01-01 10:35:00
2020-01-01 10:40:00
2020-01-01 10:45:00
2020-01-01 10:50:00
2020-01-01 10:55:00

文字フォーマットを指定して表示する

日時を指定書式で表示したい場合は date.strftime を使います。

import datetime

date1 = datetime.datetime(year=2020, month=1, day=1, hour=10, minute=0)
date2 = datetime.datetime(year=2020, month=1, day=1, hour=11, minute=0)
delta = datetime.timedelta(minutes=5)

while date1 < date2:
    print(date1.strftime('%Y.%m.%d %H:%M'))
    date1 = date1 + delta

実行例は以下の通りです。

$ python example.py
2020.01.01 10:00
2020.01.01 10:05
2020.01.01 10:10
2020.01.01 10:15
2020.01.01 10:20
2020.01.01 10:25
2020.01.01 10:30
2020.01.01 10:35
2020.01.01 10:40
2020.01.01 10:45
2020.01.01 10:50
2020.01.01 10:55