1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Python】月末日を取得する方法

Last updated at Posted at 2021-12-15

###月末の日付を取得する方法をメモしておきます。
###①dateutilライブラリを使用する
標準ライブラリのtimedeltaでは、日付に加算・減算はできますが、月の加算はできません。
そのため外部ライブラリのdateutilを使用します。

外部ライブラリなので、まずはインストールします。

$ pip install python-dateutil

今月の末日を取得する処理を例に解説をします。

import datetime
from dateutil.relativedelta import relativedelta

today = datetime.date.today()  # 2021-12-15

last_day_current_month = today + relativedelta(months=1, day=1) - relativedelta(days=1)
print(current_month_lastdate)
# 2021-12-31

1つ目の足し算で来月の1日となります。
2つ目の引き算で1日引き算をしているので今月の末日となります。
dateutil/relativedelta

###②calendarライブラリを使う
こちらは標準ライブラリですので、インストールは必要ありません。

import calendar

print(calendar.monthrange(2021, 12))
# (2, 31) <- (1日の曜日, 指定月の日数)

戻り値を見てみると
2番目の値が指定月の日数、すなわち月末日を表します。
ちなみに1番目の値は、1日の曜日を表します。
月曜日から日曜日までを0から6で表しますので、2は火曜日ということになります。
Python/Calendar

###まとめ
月末日付のdate型もしくはdatetime型を取得する場合は①dateutilライブラリを使用して
指定月の翌月の1日から1日引き算することで、指定月の末日が取得できます。

月末が何日までなのかを取得する場合は②を使うと簡単に月末日を取得できます。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?