見出し画像

Google ColaboratoryでPythonを始める-7/カレンダーを作成する

こんにちはロック204チャンネルです。
今回はpython入門講座「Google ColaboratoryでPythonを始める 7 カレンダーを作成する」 と題しお送りします。
内容は
カレンダーモジュールの使用方法
これを利用したカレンダー作成プログラムについて解説します。

カレンダー表示をおこなうには

パソコン画面にカレンダーを出力させるためにはpythonでは、import命令を使用してcalendarモジュールを取り込みます。
この操作はプログラムの最初に行ってください。
年、月を指定してカレンダーを表示するには、print命令の中にcalendar.monthと書いて西暦年、月の順に指定して表示します。
そうすると下のような形でカレンダーを出力することができます。

出力されたカレンダーを見てみると既定値では月曜日となりますが
それ以外の曜日を最初の列に表示したい場合には
Calendar.setfirstweekday(の中にcalendar.曜日で週の始まりを指定します。
そうすると指定した値がSUNDAYの場合、日曜日が最初の曜日となりカレンダーが出力されます。

年間のカレンダーを表示するには、calendar.prcalと書いて(の中に西暦を書きます。
そうすると指定した年のカレンダーを出力することができます。

カレンダー表示の調整

もう一度コードを見て行きましょう。
カレンダーの列幅と行幅を指定する場合ですが
カンマで区切ってwとlで指定します。
Wは列幅、lは行幅を指定するのに使っていきます。
この指定する数字を大きくするに従って列幅、行幅を調整することができます。

こちらは年間のカレンダーの出力調整ですが
mのオプションでは一行に表示する月の数を指定することができます。
またcで指定できるのは、月の間のスペースです。3であればみっつのスペースで月間を区切ることができます。

カレンダー作成プログラムの実行

カレンダープログラムのコードを見て行きます。
最初に一行と二行で使用するモジュールを取り込んでいきます。
一行目ではcalendarモジュール
二行目ではdatetimeモジュールを取り込んでいきます。
datetimeモジュールは日付の要素を取り出すために使用しています。
これは指定した年や月が入力されていない場合に、現在の日付より年あるいは月を取り出すために使用するためです。
最初に「カレンダーを作成します。」と画面表示した後
Input命令で「何年のカレンダーですか」と問い入力された値を変数bfに入れます。
そしてmydateという変数にdatetimeモジュールを使って今日の日付データを取り込みます。
5行目で取り込んだ文字列が空白であった場合は、8行目でpr_yearに現在の年を取り込みます。
空白でない場合は、変数bfの文字列を整数に変換しpr_yearに代入します。
11行目は「何月のカレンダーですか。」と画面に表示しテキストボックスより入力された値を変数bfに取り込みます。
年の時と同様な形でbfが空白であった場合には、pr_monthに現在の月を代入します。
空白でない場合には、bfをpr_monthに整数に変換して代入します。
そして18行目でcalendar.month関数を使って指定した年、月のカレンダーを出力します。

# @title
import calendar  #カレンダーモジュールの取り込み import datetime  #日付の要素を取り出すため使用 
print('カレンダーを作成します。')
bf=input('何年のカレンダーですか=')
myDate=datetime.datetime.today()
if bf=='': #入力された値が空であったとき
  pr_year=myDate.year #現在の年を入れる
else:
  pr_year=int(bf)  #文字を整数に変換 bf=input('何月のカレンダーですか=')
if bf=='': #入力された値が空であったとき
  pr_month=myDate.month  #現在の月を入れる else:
  pr_month=int(bf)  #文字を整数に変換 
print('')
print(calendar.month(pr_year,pr_month)) #年、月を指定してカレンダー 出力

今回はcalendarモジュールを使って指定した月あるいは年のカレンダーを出力する方法について解説しました。
また対話形式でカレンダーを作成するプログラムについても説明しました。
次回は時間の取得について解説する予定です。

ご視聴ありがとうございました。


この記事が気に入ったらサポートをしてみませんか?