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

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/07/02 07:12