Calendar, TextCalendarクラスなどで用意されているカレンダー表示用の関数を使わずに、指定された西暦年、月のカレンダーをターミナルに表示するPythonのプログラムを記述する方法についてです。ヒントとして、datetimeクラスのオブジェクトでその月の1日の曜日を求めるそうです。カレンダーの最上部には、月と西暦年がJanuary 2022のように表示されるように作ります。また、曜日のタイトルとして「Sun Mon Tue Wed Thu Fri Sat」が次の行に表示され、その後、日が表示されるようにしたいです。
以下のように、年月をinputで6桁入力し、yearとmonthに分けてisoweekdayでその月の1日の曜日を求めるところまではできたのですが、その曜日を使ってどのように指定された西暦年、月のカレンダーができるのかがわかりませんでした。ヒントやご指導を頂けますと幸いです。
python
from datetime import* #西暦年、月を入力 ym = int(input("年月を6桁の整数で入力 : ")) #年と月に分ける yyyy,mm = ym//100, ym%100 #指定された月の1日とその曜日 day1 = date(yyyy,mm,1) #月曜日を1 ~ 日曜日を7 day2= day1.isoweekday() #最上部へのタイトル表示 print(yyyy,mm) print( "Sun Mon Tue Wed Thu Fri Sat" ) if day2 = #以下を活かせそうだけど、どのようにすればよいか迷い中 #offset = 3 #for _ in range(offset):print( end=" " ) #for day in range(1,32): # print(f"{day:3} ", end="") # if (offset+day)%7 == 0:print() #print()
まだ回答がついていません
会員登録して回答してみよう