Pythonで月末・月初を取得する方法を完全解説!calendarモジュールで日時操作をやさしく理解
生徒
「Pythonで月末の日付を自動で取得したいんですが、どうすればいいですか?」
先生
「Pythonには、月の日数を調べられる便利な仕組みがあります。カレンダーを見る感覚で扱えるので安心してください。」
生徒
「月初も一緒に取得できますか?パソコン操作もほとんど分からなくて…」
先生
「大丈夫です。パソコンが苦手な方でも分かるように、基本から順番に説明します。」
1. Pythonの日時操作とは?
Pythonの日時操作とは、「今日の日付を知る」「月末の日を調べる」といった、日付や時間をプログラムで扱うことです。普段、紙のカレンダーで日付を確認する作業を、Pythonに代わりにやってもらうイメージです。
特に「月末」や「月初」は、給料計算、請求書作成、スケジュール管理などでよく使われます。人が手で数えると間違えやすいですが、Pythonなら正確に処理できます。
2. calendarモジュールとは?
calendarモジュールとは、Pythonに最初から用意されている「カレンダー専用の道具箱」です。モジュールとは、便利な機能がまとめられた部品のようなものです。
このモジュールを使うと、「その月が何日まであるか」「うるう年かどうか」といった情報を簡単に取得できます。紙のカレンダーをめくる代わりに、Pythonが答えてくれます。
3. calendarモジュールを使う準備
Pythonでcalendarモジュールを使うには、最初に「使います」と宣言します。これをインポートと呼びます。難しく考えず、「道具を取り出す合図」だと思ってください。
import calendar
この1行を書くだけで、calendarモジュールの機能が使えるようになります。
4. 月末の日付を取得する方法
月末とは、その月の一番最後の日のことです。例えば、4月なら30日、2月なら28日や29日です。
calendarモジュールのmonthrangeという機能を使うと、「その月の最終日」が数字で分かります。
import calendar
year = 2024
month = 2
last_day = calendar.monthrange(year, month)[1]
print(last_day)
29
ここで出てくる「[1]」は、「結果の中の2番目を使う」という意味です。monthrangeは、曜日と日数をセットで返すため、このような書き方になります。
5. 月初の日付を取得する方法
月初とは、毎月必ず「1日」です。そのため、Pythonでは特別な計算をしなくても、数字の「1」を使えばOKです。
ただし、「日付」として扱う場合は、datetimeモジュールと組み合わせると便利です。
import datetime
year = 2024
month = 5
first_day = datetime.date(year, month, 1)
print(first_day)
2024-05-01
このように書くと、「〇年〇月〇日」という正式な日付データとして扱えます。
6. 月初と月末を同時に取得する
実務では、月初と月末をセットで使うことがよくあります。calendarとdatetimeを組み合わせると、まとめて取得できます。
import calendar
import datetime
year = 2024
month = 7
first_day = datetime.date(year, month, 1)
last_day = datetime.date(year, month, calendar.monthrange(year, month)[1])
print(first_day)
print(last_day)
2024-07-01
2024-07-31
「月初は1日」「月末はcalendarで調べる」と覚えると、混乱しにくくなります。
7. なぜcalendarモジュールを使うのか
月の日数は毎月違い、2月はうるう年で変わります。人が覚えるのは大変ですが、calendarモジュールなら自動で判断してくれます。
特に初心者の方ほど、「自分で計算しない」ことが大切です。Pythonに任せることで、ミスを防げます。
8. 初心者がつまずきやすいポイント
よくある間違いは、「月末は30日だと思い込む」「2月を固定で28日にする」ことです。これでは正しい結果になりません。
calendarモジュールを使えば、こうした思い込みをせず、正確な月末・月初を取得できます。パソコン操作に慣れていなくても、決まった書き方をそのまま使えば問題ありません。