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