Pythonで指定した月のカレンダーを表示するプログラムを作成する方法を学びましょう。このガイドでは、inputで指定した整数xに基づいて、2025年x月のカレンダーを表示させるコードを紹介します。
プログラムの概要
この課題では、1日の曜日に合わせて日付を並べ、曜日ごとに日付を表示する必要があります。プログラムはwhile文またはfor文を使用し、calendarモジュールやdatetimeモジュールを使わずに実装します。
必要なステップ
まず、プログラムはユーザーから月の入力を受け取ります。そして、指定された月の日数を求め、曜日ごとに並べて表示する処理を行います。特に、1日の位置がどの曜日に該当するかを計算し、空白のセルを適切に配置する方法を考える必要があります。
Pythonコード例
以下は、2025年の任意の月のカレンダーを表示するためのPythonプログラムです。
def print_calendar(month):
# 曜日リスト
days = ['日', '月', '火', '水', '木', '金', '土']
# 月の日数を計算
days_in_month = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31] # 2025年の月の日数
total_days = days_in_month[month - 1]
# 1日が何曜日かを計算(2025年1月1日が水曜日)
first_day_of_month = (1 + (month - 1) * 31) % 7
# 曜日ヘッダーの表示
print(' '.join(days))
# 空白を適切に埋めて、カレンダーを表示
current_day = 1
for i in range(6):
for j in range(7):
if i == 0 and j < first_day_of_month:
print(' ', end=' ') # 空白部分
elif current_day <= total_days:
print(f'{current_day:2}', end=' ') # 日付の表示
current_day += 1
else:
print(' ', end=' ') # 空白部分
print() # 改行
# ユーザーから月を入力
month = int(input('表示したい月を入力してください (1-12): '))
print_calendar(month)
コードのポイント
1日の曜日は、月初めの日が何曜日かを計算することで決まります。この例では、2025年1月1日が水曜日だったため、その情報を基に計算します。曜日ごとのスペースを考慮して、最初の日付を適切に配置し、残りの日付を曜日に沿って並べる処理を行います。
注意点
カレンダーを作成する際、1日の曜日が何曜日に該当するかを計算する方法に注意してください。日曜日から土曜日までを順番に並べることにより、日付が正しく並べられます。また、月によって日数が異なるため、月ごとの日数を正しく設定することが重要です。
まとめ
このPythonプログラムを使うことで、指定した月のカレンダーを表示することができます。while文やfor文を使って、曜日や日付を正しく表示させる方法を学びました。プログラムを改良することで、さらに柔軟なカレンダーを作成することもできます。


コメント