工業製造
産業用モノのインターネット | 工業材料 | 機器のメンテナンスと修理 | 産業プログラミング |
home  MfgRobots >> 工業製造 >  >> Industrial programming >> Python

Python calendarモジュール完全ガイド:コード例付きで徹底解説

Pythonの組み込みcalendarモジュールは、日付、月、年を扱うための強力なツールを提供します。TextCalendarやHTMLCalendarなどのクラスを活用することで、印刷可能またはウェブフレンドリーなカレンダーの作成、日付のイテレーション、カスタムスケジューリングルールの計算が可能です。

以下に最も一般的なユースケースをステップバイステップで解説し、Python 2とPython 3の両方で動作する即実行可能なコードスニペットを提供します。

ステップ1 – テキストカレンダーの生成

以下のスクリプトを実行すると、週の開始を木曜日に設定した2025年1月のプレーンテキストカレンダーが表示されます:

Python calendarモジュール完全ガイド:コード例付きで徹底解説

週開始を日曜日に変更して柔軟性を確認:

Python calendarモジュール完全ガイド:コード例付きで徹底解説

ステップ2 – HTMLカレンダーのレンダリング

ウェブアプリケーション向けにHTMLCalendarはCSSでスタイリング可能な完全なHTMLテーブルを生成:

Python calendarモジュール完全ガイド:コード例付きで徹底解説

ステップ3 – 月の日付をイテレーション

itermonthdaysメソッドは、隣月に属する日のパディングゼロを含む、その月の全日を生成します。これはカレンダーのレイアウト調整に有用です:

Python calendarモジュール完全ガイド:コード例付きで徹底解説

ステップ4 – ロケール対応の名称取得

Pythonはシステムのロケールに基づいて月名と曜日名を自動的に提供します。calendar.month_nameとcalendar.day_nameを出力したサンプル:

Python calendarモジュール完全ガイド:コード例付きで徹底解説

ロケール設定はマシンにより異なるため、他国のユーザーでは結果が異なる場合があります。

ステップ5 – カスタム日付の計算(例: 各月の最初の月曜日)

2025年の各月の第1月曜日を求める簡潔なスクリプト:

Python calendarモジュール完全ガイド:コード例付きで徹底解説

ロジックはcalendar.monthcalendarで週のマトリックスを取得し、最初の2週間で非ゼロの月曜日値をチェックします。

Python 2の例

import calendar
# プレーンテキストカレンダー作成
c = calendar.TextCalendar(calendar.THURSDAY)
text = c.formatmonth(2025, 1)
print text
# HTMLフォーマットカレンダー作成
hc = calendar.HTMLCalendar(calendar.THURSDAY)
html = hc.formatmonth(2025, 1)
print html
# 月の日付をループ
for i in c.itermonthdays(2025, 4):
    print i
# ロケール対応の月名と曜日名
for name in calendar.month_name:
    print name
for day in calendar.day_name:
    print day
# 各月の最初の月曜日を検索
for month in range(1, 13):
    mycal = calendar.monthcalendar(2025, month)
    week1 = mycal[0]
    week2 = mycal[1]
    if week1[calendar.MONDAY] != 0:
        auditday = week1[calendar.MONDAY]
    else:
        auditday = week2[calendar.MONDAY]
    print "%10s %2d" % (calendar.month_name[month], auditday)

Python 3の例

import calendar
# プレーンテキストカレンダー作成
c = calendar.TextCalendar(calendar.THURSDAY)
text = c.formatmonth(2025, 1)
print(text)
# HTMLフォーマットカレンダー作成
hc = calendar.HTMLCalendar(calendar.THURSDAY)
html = hc.formatmonth(2025, 1)
print(html)
# 月の日付をループ
for i in c.itermonthdays(2025, 4):
    print(i)
# ロケール対応の月名と曜日名
for name in calendar.month_name:
    print(name)
for day in calendar.day_name:
    print(day)
# 各月の最初の月曜日を検索
for month in range(1, 13):
    mycal = calendar.monthcalendar(2025, month)
    week1 = mycal[0]
    week2 = mycal[1]
    if week1[calendar.MONDAY] != 0:
        auditday = week1[calendar.MONDAY]
    else:
        auditday = week2[calendar.MONDAY]
    print("%10s %2d" % (calendar.month_name[month], auditday))

まとめ

Python

  1. C#抽象クラス実践チュートリアル:コード例で理解する設計パターン
  2. Python strip()メソッド完全ガイド:実践例付き
  3. Python str.count()マスター:文字と部分文字列のカウント実例集
  4. Python round()関数を実例で徹底解説
  5. Python map()関数をマスター:構文、例、ベストプラクティス
  6. Python timeit():実行時間測定の実例付きガイド
  7. Python yieldをマスター:ジェネレータvs return – 実践ガイド
  8. Python collections.Counter:効率的なカウント、更新、演算操作
  9. Python list.count() 完全ガイド:実践例付きで徹底解説
  10. Python list.index():要素の位置を検索する実践ガイド
  11. Python C拡張プログラミング:高速ネイティブモジュールの構築