カテゴリ: Python 更新日: 2026/02/17

Pythonで特定の年・月の日数を取得する方法を完全解説!初心者でもわかるcalendar.monthrange()

Pythonで特定の年・月の日数を取得する方法(calendar.monthrange())
Pythonで特定の年・月の日数を取得する方法(calendar.monthrange())

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

生徒

「Pythonで、今月が何日まであるかを調べることってできますか?」

先生

「できますよ。Pythonにはカレンダーを扱うための便利な仕組みが用意されています。」

生徒

「2月って年によって28日だったり29日だったりしますよね。それも自動で分かるんですか?」

先生

「はい。calendar.monthrange()という機能を使えば、人が考えなくても正しい日数を教えてくれます。」

生徒

「パソコンをほとんど触ったことがなくても大丈夫ですか?」

先生

「もちろんです。画面の見方から、コードの意味まで一つずつ説明します。」

1. Pythonで日付やカレンダーを扱うとは?

1. Pythonで日付やカレンダーを扱うとは?
1. Pythonで日付やカレンダーを扱うとは?

Python(パイソン)は、初心者でも読みやすく、やさしい書き方ができるプログラミング言語です。Pythonでは、日付や時間、カレンダーといった「日時操作(にちじそうさ)」も簡単に行えます。

日時操作とは、「今日は何年何月何日か」「この月は何日まであるか」といった、カレンダーに関する計算をプログラムで行うことです。紙のカレンダーを見る代わりに、パソコンに聞くようなイメージです。

2. calendarモジュールとは何か

2. calendarモジュールとは何か
2. calendarモジュールとは何か

モジュールとは、便利な道具がひとまとめになった箱のようなものです。Pythonには最初からたくさんのモジュールが用意されています。

calendarモジュールは、カレンダーに関する計算をしてくれる道具箱です。月の日数を調べたり、曜日を計算したりすることができます。

まずは、このcalendarモジュールを「使いますよ」とPythonに伝える必要があります。


import calendar

この1行は、「calendarという道具箱を使えるようにする」という意味です。

3. calendar.monthrange()の基本的な使い方

3. calendar.monthrange()の基本的な使い方
3. calendar.monthrange()の基本的な使い方

calendar.monthrange()は、「指定した年と月の情報」を教えてくれる機能です。ここでは特に「その月が何日まであるか」を知るために使います。

使い方はとてもシンプルで、「年」と「月」を数字で指定します。


import calendar

result = calendar.monthrange(2024, 2)
print(result)

このコードでは、「2024年2月」の情報を調べています。


(3, 29)

表示された「(3, 29)」は2つの意味があります。前の数字は曜日、後ろの数字が月の日数です。つまり、2024年2月は29日まであることが分かります。

4. 月の日数だけを取り出す方法

4. 月の日数だけを取り出す方法
4. 月の日数だけを取り出す方法

初心者の方は、「曜日はいらないから、日数だけ知りたい」と思うことが多いです。その場合は、2番目の数字だけを取り出します。

Pythonでは、数字の集まりから特定の位置の値を取り出すことができます。


import calendar

year = 2023
month = 11

week, days = calendar.monthrange(year, month)
print(days)

30

この例では、2023年11月が30日まであることが分かります。weekは曜日、daysが日数です。

5. うるう年でも正しく計算できる理由

5. うるう年でも正しく計算できる理由
5. うるう年でも正しく計算できる理由

2月の日数が変わる年を「うるう年」と言います。人が手で計算すると間違えやすい部分ですが、Pythonなら心配ありません。

calendar.monthrange()は、内部で正しいカレンダーのルールを使って計算しています。


import calendar

print(calendar.monthrange(2023, 2)[1])
print(calendar.monthrange(2024, 2)[1])

28
29

このように、年を変えるだけで自動的に正しい日数が表示されます。

6. 実生活に近いイメージで理解しよう

6. 実生活に近いイメージで理解しよう
6. 実生活に近いイメージで理解しよう

calendar.monthrange()は、「この年のこの月のカレンダーを見せて」とパソコンにお願いするようなものです。

人間がカレンダーをめくって確認する代わりに、Pythonが一瞬で調べてくれます。特に、家計簿、シフト表、予約システムなどで月末日を知りたいときに役立ちます。

7. よくある間違いと注意点

7. よくある間違いと注意点
7. よくある間違いと注意点

月は「1月〜12月」を「1〜12」で指定します。「0」や「13」を入れるとエラーになります。

また、calendarモジュールをimportし忘れると動きません。エラーが出たときは、まず最初のimportを確認しましょう。

8. 初心者が覚えておきたいポイント

8. 初心者が覚えておきたいポイント
8. 初心者が覚えておきたいポイント

・calendar.monthrange(年, 月)で月の日数が分かる

・結果は「曜日」と「日数」の2つがセットで返ってくる

・2番目の数字が、その月の最大日数

この3つを覚えておくだけで、Pythonの日時操作の第一歩は十分です。

コメント
コメント投稿は、ログインしてください

まだ口コミはありません。

関連記事:
Python の日時操作の記事一覧へ
新着記事
New1
Python
Pythonの整数と浮動小数点数の違いとは?数値型の基本を解説
New2
Python
Pythonで文字列をリストに変換する方法!split()とjoin()の使い方
New3
Python
Pythonのbreakとcontinueの違いとは?ループの制御方法をマスター
New4
Python
Pythonのstartswith()・endswith()の使い方!文字列の前後をチェック
人気記事
No.1
Java&Spring記事人気No1
PHP
PHPの特殊文字とエスケープ処理を完全ガイド!初心者向けにhtmlspecialcharsとhtmlentitiesをやさしく解説
No.2
Java&Spring記事人気No2
PHP
PHP の文字列のフォーマット(sprintf, printf)
No.3
Java&Spring記事人気No3
Python
Pythonで文字列を置換する方法!replace()の使い方と正規表現の活用
No.4
Java&Spring記事人気No4
Python
Pythonでリストを分割する方法(スライス / split() / itertools)
No.5
Java&Spring記事人気No5
Python
Pythonのクロージャー(Closure)とは?関数内関数とnonlocalの活用
No.6
Java&Spring記事人気No6
Python
Pythonで経過時間を測る方法をやさしく解説!初心者向けtime.perf_counterとtime.sleepの使い方
No.7
Java&Spring記事人気No7
PHP
PHPの認証機能を実装する方法!初心者でもわかるログイン・ログアウト処理の基本
No.8
Java&Spring記事人気No8
Python
Pythonのstartswith()・endswith()の使い方!文字列の前後をチェック