カテゴリ: Python 更新日: 2026/01/05

Pythonで月末・月初を取得する方法を完全ガイド!初心者でもわかる日時操作

Pythonで月末・月初を取得する方法(calendar モジュールの活用)
Pythonで月末・月初を取得する方法(calendar モジュールの活用)

先生と生徒の会話形式で理解しよう

生徒

「Pythonで月末の日付を自動で出したいんですが、どうやればいいんですか?」

先生

「Pythonには、カレンダー計算を助けてくれる便利なcalendarモジュールがあります。これを使うと月末や月初を簡単に求められますよ。」

生徒

「カレンダーの計算って難しそうですが、覚える必要がありますか?」

先生

「心配しなくて大丈夫です。Pythonが自動で計算してくれるので、短いコードを書くとすぐに月末や月初を取得できますよ。」

1. Pythonで月末・月初を扱うための基本知識

1. Pythonで月末・月初を扱うための基本知識
1. Pythonで月末・月初を扱うための基本知識

Pythonの日時操作では、datetimeモジュールとcalendarモジュールをよく組み合わせて使います。特に月末を求めるときに便利なのがcalendar.monthrange()という関数です。この関数は、指定した年と月に対して「月の最初の曜日」と「月の日数」を返します。ここで得られる「日数」を使えば、月末の日付を一瞬で判定できます。

プログラミング初心者の方でも、カレンダーの仕組みを覚えなくても問題ありません。Python が自動で正しい日付を計算してくれるため、安心して使うことができます。例えば「2月は28日なのか29日なのか」などを気にする必要はなく、コードが正しい結果を返してくれます。

2. calendar.monthrangeで月末の日付を取得する方法

2. calendar.monthrangeで月末の日付を取得する方法
2. calendar.monthrangeで月末の日付を取得する方法

まずは実際に月末を取得するコードを見てみましょう。ここでは現在の日付から年と月を取り出し、その月の最終日を求めます。月末の日付を自動で求める処理は、日報作成、売上集計、月次レポートなどのシステムでもよく使われます。


import datetime
import calendar

today = datetime.date.today()
year = today.year
month = today.month

last_day = calendar.monthrange(year, month)[1]
month_end = datetime.date(year, month, last_day)

print(month_end)

このように、calendar.monthrange()が返す2番目の値がその月の日数です。プログラムではそれをそのまま月末の日付として使います。初心者の方がつまずきやすいのは、「monthrangeの返り値がタプルである」という点ですが、左から順番に番号が付いていると考えると理解しやすいです。


2025-12-31

3. 月初の日付を取得する方法

3. 月初の日付を取得する方法
3. 月初の日付を取得する方法

月初はとても簡単で、常に「1日」と決まっています。そのため、年と月さえわかればいつでも同じ方法で取得できます。月初を使う処理は、期間の開始日を設定するときや、月ごとの統計データを作成するときなど、幅広い場面で登場します。


import datetime

today = datetime.date.today()
year = today.year
month = today.month

month_start = datetime.date(year, month, 1)

print(month_start)

2025-12-01

このように、月初はいつでも1日なので、datetime.date(year, month, 1)と書くだけで取得できます。月末と合わせて覚えておくと、日付範囲を扱うコードがとても書きやすくなります。

4. 任意の年月の月末・月初を取得する応用例

4. 任意の年月の月末・月初を取得する応用例
4. 任意の年月の月末・月初を取得する応用例

次に、ユーザーが入力した年と月から月末や月初を計算する方法も覚えておくと便利です。業務システムでは「指定月のレポートを作りたい」という場面が多いため、柔軟に年月を指定できると実用性が高まります。


import datetime
import calendar

year = 2025
month = 5

first_day = datetime.date(year, month, 1)
last_day = calendar.monthrange(year, month)[1]
end_day = datetime.date(year, month, last_day)

print(first_day, end_day)

2025-05-01 2025-05-31

実務では「来月の初日」「先月の最終日」を求める処理もよく出てきます。こうした計算も、datetimecalendarを組み合わせれば簡単に実装できます。Pythonのこの柔軟さは、日付を扱うプログラムを書き始めたばかりの方にも大きな助けとなります。

5. 月末や月初を扱うときのよくあるつまずきポイント

5. 月末や月初を扱うときのよくあるつまずきポイント
5. 月末や月初を扱うときのよくあるつまずきポイント

月末や月初の処理を書くとき、初心者がつまずきやすいポイントがあります。それは「日付の計算を自分でしようとしてしまう」という点です。月によって日数が違うため、手作業で条件分岐を書こうとするとすぐに複雑になります。しかし、Python にはこうした計算を自動で行う仕組みが標準で用意されています。

また、monthrangeの返す曜日を誤って使ってしまうケースもよくあります。最初の値は「月の最初の曜日」で、実際の月末日には関係ありません。2番目の値だけを使うことをしっかり覚えておくと安心です。このような小さなポイントを押さえることで、日付計算の精度と扱いやすさが格段に向上します。

カテゴリの一覧へ
新着記事
New1
Flask
Flaskで非同期フォーム送信(Ajax POST)を実装する方法を解説!初心者でもわかるステップ解説
New2
Python
Pythonで定数を定義する方法!変更されない変数の書き方と命名ルールを初心者向けに解説
New3
Python
PythonでMySQLに接続する方法!pymysqlの基本的な使い方
New4
Flask
FlaskのURLルールとは?ルーティングの基本と動的URLの作り方を解説
人気記事
No.1
Java&Spring記事人気No1
Python
Pythonとは何か?初心者向けにできること・特徴・インストール手順までやさしく解説
No.2
Java&Spring記事人気No2
Flask
Flaskでデータベースを使う基本!SQLAlchemyの導入方法をやさしく解説
No.3
Java&Spring記事人気No3
Python
Pythonでリストの要素を検索・取得する方法!index()やin演算子の活用法
No.4
Java&Spring記事人気No4
Python
Pythonプログラムの書き方を基礎から学ぼう!初心者が覚えるべき文法とは?
No.5
Java&Spring記事人気No5
Flask
Flaskアプリの環境変数をクラウドで安全に設定する方法!初心者のための完全ガイド
No.6
Java&Spring記事人気No6
Python
Pythonで仮想環境(venv)を作る方法!初心者向けに環境構築をステップ解説
No.7
Java&Spring記事人気No7
Python
Pythonのインストール方法まとめ!Windows・Mac・Linux別にステップ解説
No.8
Java&Spring記事人気No8
Flask
Flaskでクラウド上のメッセージキュー(SQS/PubSub)を扱う完全ガイド!初心者向け解説