Python
 Computer >> コンピューター >  >> プログラミング >> Python

Pythonで月の最終日を取得する方法【calendarモジュールの使い方】

Pythonでは、標準ライブラリのcalendarモジュールを使うことで、指定した月の最終日(末日)を簡単に取得できます。calendarモジュールにはmonthrange(year, month)という便利なメソッドが用意されており、指定した年・月の「1日の曜日」と「その月の日数」をタプルで返します。この情報を組み合わせれば、月の最終日の日付や曜日を自在に求めることが可能です。

monthrange()メソッドの基本

calendar.monthrange(year, month)は、以下の2つの値を返します。

  • 第1戻り値:その月の1日の曜日(0が日曜日、6が土曜日)
  • 第2戻り値:その月の日数(28〜31)

つまり、第2戻り値がそのまま「月の最終日の日付」になります。閏年(うるう年)も自動的に考慮されるため、2月の扱いにも安心して使えます。

月の最終日の日付を取得する例

import calendar

# 2017年12月の場合
first_day_weekday, num_days = calendar.monthrange(2017, 12)

print(num_days)

実行すると「31」が出力されます。2017年12月は31日まであるためです。

月の最終日の曜日を取得する例

最終日の曜日を知りたい場合は、1日の曜日に日数を加算して計算します。

import calendar

day, num_days = calendar.monthrange(2017, 12)
last_week = num_days % 7
last_day = (day + last_week) % 7
print(last_day)

このコードの出力結果は「0」です。曜日は0〜6の数値で表され、0が日曜日、1が月曜日、…、6が土曜日に対応します。つまり、2017年12月31日は日曜日だったことになります。

datetimeと組み合わせて日付オブジェクトとして取得する

実際に日付オブジェクトとして扱いたい場合は、datetimeモジュールと組み合わせるとさらに便利です。

import calendar
from datetime import date

year, month = 2017, 12
last_day = calendar.monthrange(year, month)[1]
last_date = date(year, month, last_day)

print(last_date)  # 出力: 2017-12-31

このように、calendarモジュールを活用すれば、あらゆる月の最終日を正確かつシンプルに取得できます。請求処理やレポート生成など、月末を基準とする処理を実装する際にぜひ活用してください。

  1. PythonのTkinterでポップアップダイアログを表示する方法【messagebox活用ガイド】

    Tkinterは、GUIベースのアプリケーションを作成・開発するためのPython標準ライブラリです。Tkinterを使えばアプリケーションを構築し、さまざまなウィジェットを追加することで、よりインタラクティブな画面を作ることができます。ここでは、アプリケーション内でポップアップダイアログを表示する方法を紹介します。この場合に役立つのが、tkinterに組み込まれているmessageboxモジュールです。messageboxを使うと、エラーメッセージ、情報ボックス、確認ダイアログなど、さまざまな種類のダイアログボックスを簡単に表示できます。サンプルコード以下の例では、クリックすると画面上にポッ

  2. Pythonでファイルの統計情報(stat)を取得する方法

    Pythonでファイルの統計情報を取得する基本 Pythonでファイルの詳細な統計情報(メタデータ)を取得したい場合は、標準ライブラリのosモジュールが提供するos.stat()関数を使用します。この関数は、指定されたパスに対してOSレベルのstatシステムコールを実行し、ファイルに関するさまざまな情報を返します。 os.stat()の基本的な使い方 import os st = os.stat(file.dat) os.stat()は引数としてファイル名を受け取り、その結果として以下の10個の要素を持つタプルを返します。 (mode, ino, dev, nlink, uid, gid,