PythonのCalendarモジュールの使い方を分かりやすく解説していく

スポンサーリンク

今回は、PythonのCalendarモジュールについて詳しく説明します。


スポンサーリンク

まず、calendarモジュールとは何でしょうか?

Pythonでは、データを扱い、操作や変更を行い、フォーマットされた形で表示させるための様々なモジュールを提供しています。

Pythonのcalendarモジュールを使えば、日付に関連するデータをカレンダーのような形式で簡単に表現することができます

さらに、日付に関連するデータを操作して、必要なデータを取り出すための関数も多数提供されています。

カレンダーモジュールは、日付、年、月、日、そして月の週、うるう年などの属性でデータを操作し、表現するのに役立ちます。

Python の calendar モジュールの関数

Pythonのcalendarモジュールが提供する以下の関数を取り上げます。

  1. calendar.month() 関数
  2. calendar.calendar()関数
  3. monthdatescalendar()関数
  4. formatmonth()関数
  5. isleap()関数
  6. leapdays()関数

それでは、次節でそれぞれの関数について見ていきましょう


1. calendar.month() 関数

calendar モジュールを使うと、月全体のカレンダーを読みやすいカレンダー形式で簡単に表現することができます

calendar.month()関数を使用すると、任意の月のカレンダーを表現することができます

そのためには、month()関数に月と年の値を渡す必要があります。

以下の構文を見てください。

calendar.month(year, month)

例えば、以下の様になります。

この例では、年 = 2020、月 = 8、すなわち 8 月を渡しました。

したがって、month()関数は、2020年の8月のカレンダーを返します。

import calendar
year = 2020
month = 8 
print(calendar.month(year, month))

結果は以下の通りです。

     August 2020
Mo Tu We Th Fr Sa Su
                1  2
 3  4  5  6  7  8  9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31

2. calendar.calendar()関数

Pythonのcalendarモジュールを使えば、月のカレンダーだけでなく、1年分のカレンダーをカスタマイズして表現することも可能です。

構文は以下の通りです。

calendar.calendar(year)

例えば、以下の様になります。

この例では、calendar.calendar()関数を使って、2020年のカレンダー全体を表現しています。

import calendar
year = 2020
print(calendar.calendar(year))

結果は以下の通りです。

calendar.HTMLCalendar(firstweekday = 0)

3. 月を HTML 形式で表現する

カレンダーモジュールは、特定の月や年のデータをHTML形式で表現することができます

このため、希望する月のデータをHTML形式で表現し、それに関連するタグを付けることができます。

構文は以下の様な感じです。

import calendar
 
cal = calendar.HTMLCalendar(firstweekday = 0)
 
print(cal.formatmonth(2020, 9, withyear = True))

例えば、以下の様になります。

calendar.HTMLCalendar()関数で、カレンダーのHTMLインスタンスを生成することができます

さらに、formatmonth()関数を使用すると、希望の年の希望の月のHTMLカレンダーを生成することができます

withyear = TRUEとすることで、HTML形式のヘッダーに年の値を含めることができます。

<table border="0" cellpadding="0" cellspacing="0" class="month">
<tr><th colspan="7" class="month">September 2020</th></tr>
<tr><th class="mon">Mon</th><th class="tue">Tue</th><th class="wed">Wed</th><th class="thu">Thu</th><th class="fri">Fri</th><th class="sat">Sat</th><th class="sun">Sun</th></tr>
<tr><td class="noday"> </td><td class="tue">1</td><td class="wed">2</td><td class="thu">3</td><td class="fri">4</td><td class="sat">5</td><td class="sun">6</td></tr>
<tr><td class="mon">7</td><td class="tue">8</td><td class="wed">9</td><td class="thu">10</td><td class="fri">11</td><td class="sat">12</td><td class="sun">13</td></tr>
<tr><td class="mon">14</td><td class="tue">15</td><td class="wed">16</td><td class="thu">17</td><td class="fri">18</td><td class="sat">19</td><td class="sun">20</td></tr>
<tr><td class="mon">21</td><td class="tue">22</td><td class="wed">23</td><td class="thu">24</td><td class="fri">25</td><td class="sat">26</td><td class="sun">27</td></tr>
<tr><td class="mon">28</td><td class="tue">29</td><td class="wed">30</td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td><td class="noday"> </td></tr>
</table>

を出力します。

calendar.isleap(year)

4. calendar.isleap() 関数

calendar.isleap()関数を使うと、ある年がうるう年かどうかを調べることができます。

構文は以下の通りです。

import calendar
 
print(calendar.isleap(2020))
print(calendar.isleap(2002))

例えば、以下の様になります。

以下の例では、’2020′ と ‘2002’ がうるう年であるかどうかを調べています。

isleap() はブール関数なので、うるう年であれば TRUE を、そうでなければ FALSE を返します。

True
False

を結果を出力すると、以下の様になります。

calendar.leapdays(year1, year2)

5. calendar.leapdays() 関数

leapdays()関数を使うと、関数に渡された年の間の閏日を簡単に数え、表現することができます

構文は以下の様な感じです。

import calendar
 
print(calendar.leapdays(2016, 2020))
print(calendar.leapdays(2002, 2003))

例えば、以下の様になります。

ここでは、2016年と2020年、2002年と2003年の間のうるう年の日数を数えてみた。

この関数では、これらの年の間にあるうるう日の数を数え、整数値を返す。

1
0

結果は以下の通りです。

Python Calendar Module
Python Calendar Module

まとめ

何か質問があれば、お気軽にコメントください。

Pythonプログラミングに関連するこのような記事のために、私たちにご期待ください。

タイトルとURLをコピーしました