Pythonで日付の間隔(日数)を求める

Pythonでは日付の間隔をもとめることができます。

例えば、年始から今日から何日なのか?などを求めることができます。

今回はPythonで日付の間隔をもとめる方法を解説します。

日付の間隔を求める

日付をマイナスする

Pythonで日付の間隔をもとめるには、日付型同士をマイナスします。

from datetime import datetime

dt1 = datetime(2018,8,1)
dt2 = datetime(2018,8,3)

dt3 = dt2- dt1
print(dt3.days)
#[結果] 2

ここでは「2018/8/1」~「2018/8/3」の日付の間隔を求めました。大きい方の日付から小さい方の日付を引き、「days」で日数を取得すると日付の間隔を求めることができました。

日付を引き算すると「経過した日」になります。「2018/8/1」~「2018/8/3」を「3日」とする場合はプラス1する必要があります。

月をまたいだ日数

Pythonで日付の間隔をもとめるときに、月をまたいだ場合、、日数計算が正しくできるか確認してみます。

8月(31日)パターン

from datetime import datetime

dt1 = datetime(2018,8,1)
dt2 = datetime(2018,9,1)

dt3 = dt2- dt1
print(dt3.days)
#[結果] 31

9月(30日)パターン

from datetime import datetime

dt1 = datetime(2018,9,1)
dt2 = datetime(2018,10,1)

dt3 = dt2- dt1
print(dt3.days)
#[結果] 30

ここでは月をまたいだ計算が正しくできるか確認してみました。「2018/8/1」~「2018/9/1」は「31日」、「2018/9/1」~「2018/10/1」は「30日」となりました。月の日数が可変しても正しく日数を取得できました。

以上、Pythonで日付の間隔(日数)を求める方法でした。

コメント