環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Python のカレンダーで月にある週の数を計算する:月曜日はじめと日曜日はじめの設定も

最終更新日 2023.02.18

2022 年 11 月は 5 週間あります。月にある週の数は calendar ライブラリを使うとわかります。

import calendar

weeks = calendar.monthcalendar(year=2022, month=11)
count = len(weeks)

for week in weeks:
    print(week)

# [0, 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, 0, 0, 0, 0]

print(count)  # 5

monthcalendar は月曜日から始まるカレンダーをリストで返します。各リストは週を表すため len で週数が求まる。日曜日から始めるには setfirstweekday を最初に設定します。

import calendar

calendar.setfirstweekday(calendar.SUNDAY)

weeks = calendar.monthcalendar(year=2022, month=11)
count = len(weeks)

for week in weeks:
    print(week)

# [0, 0, 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, 0, 0, 0]

print(count)  # 5