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

【Python入門】calendarモジュールの主要なカレンダー関数まとめ

Pythonのcalendarモジュールとは

Pythonには、カレンダーに関する操作を扱うための標準モジュールcalendarが組み込まれています。年間カレンダーや月別カレンダーの生成、うるう年の判定など、日付に関わる処理をシンプルなコードで実現できるのが特徴です。

本記事では、calendarモジュールの代表的な関数を、サンプルコードと実行結果とともに順番に解説します。なお、各例を実行する際は、冒頭でimport calendarとしてモジュールを読み込んでおく必要があります。

calendar(year, w, l, c)|年間カレンダーを取得する

指定した1年分のカレンダー全体を文字列として返す関数です。引数は次の4つです。

  • year:対象となる年
  • w:日付1件あたりの表示幅(文字数)
  • l:1週間に割り当てる行数
  • c:月と月の間の列間隔

コード例

import calendar

print("2014年のカレンダーは以下の通りです:")
print(calendar.calendar(2014, 3, 1, 4))

実行結果(抜粋)

    2014
   January                         February                  March
Mon Tue Wed Thu Fri Sat Sun    Mon Tue Wed Thu Fri Sat Sun    Mon Tue Wed Thu Fri Sat Sun
         1   2   3   4   5                          1   2                          1   2
 6   7   8   9  10  11  12      3   4   5   6   7   8   9     3   4   5   6   7    8   9
13  14  15  16  17  18  19     10  11  12  13  14  15  16     10  11  12  13  14  15  16
20  21  22  23  24  25  26     17  18  19  20  21  22  23     17  18  19  20  21  22  23
27  28  29  30  31             24  25  26  27  28             24  25  26  27  28  29  30
                                                                  31

(以下、Decemberまで12か月分が表示されます)

firstweekday()|週の開始曜日を確認する

現在設定されている「週の最初の曜日」を整数値で返します。戻り値の0は月曜日を表し、これがデフォルト設定です。

コード例

import calendar

print("週の開始曜日は : ", end="")
print(calendar.firstweekday())

実行結果

週の開始曜日は : 0

isleap(year)|うるう年かどうかを判定する

引数に指定した年がうるう年であればTrue、そうでなければFalseを返します。日数計算や期間処理の分岐によく使われる関数です。

コード例

import calendar

if calendar.isleap(2014):
    print("この年はうるう年です")
else:
    print("この年はうるう年ではありません")

実行結果

この年はうるう年ではありません

leapdays(year1, year2)|期間内のうるう日の回数を数える

year1からyear2までの範囲に含まれるうるう年の回数を返します。長い期間の日数を正確に計算したい場合に便利です。

コード例

import calendar

print("1950年から2000年までのうるう日の回数は : ", end="")
print(calendar.leapdays(1950, 2000))

実行結果

1950年から2000年までのうるう日の回数は : 12

month(year, month, w, l)|特定の月のカレンダーを取得する

指定した年・月の1か月分のカレンダーを文字列として返します。引数は年、月、日付の表示幅、1週間あたりの行数の4つです。

コード例

import calendar

print("2017年6月のカレンダーは:")
print(calendar.month(2017, 6, 3, 1))

実行結果

         June 2017
Mon Tue Wed Thu Fri Sat Sun
              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

まとめ

calendarモジュールには、年単位・月単位のカレンダー表示から、うるう年の判定や集計まで、日付処理に役立つ関数が豊富に用意されています。また、テキスト形式だけでなくHTML形式でカレンダーを出力できるHTMLCalendarクラスなど、さらに高度な機能もあります。まずは本記事のコード例を実際に動かしながら、挙動を確かめてみてください。

  1. Pythonのissubset()関数とは?部分集合の判定方法を実例付きで解説

    本記事では、Python標準ライブラリに用意されているissubset()関数の仕組みと使い方について詳しく解説します。 issubset()メソッドは、あるセット(集合)のすべての要素が、引数として渡した別のセットにも含まれている場合にブール値のTrueを返し、1つでも含まれていない要素があればFalseを返します。 下の図では、BはAの部分集合です。もしAとBが同一のセットであれば、両者は互いに部分集合の関係にあるといえます。つまり、両方のセットがまったく同じ要素を持っているということを意味します。 構文 <set 1>.issubset(<set 2>) 戻り値

  2. Pythonのintersection()関数とは?集合の共通要素(積集合)を求める方法

    この記事では、Pythonのセット(集合)に対して実行できるintersection()関数について詳しく解説します。数学における「積集合(インターセクション)」とは、2つの集合から共通する要素を見つけ出すことを指します。構文<セット名>.intersection(<セットa1>, <セットa2>, …)戻り値引数として渡されたすべての集合に共通する要素(積集合)が、新しいセットとして返されます。使用例set_1 = {t,u,t,o,r,i,a,l} set_2 = {p,o,i,n,t} set_3 = {t,u,t} # 2つの集合の積集合 print