見出し画像

便利に使おう! プログラミング!- 曜日を調べよう。

Pythonで曜日、自分の誕生日などの曜日を調べてみます。

上記参考にライブラリ"datetime "を使ったやり方で、少しシンプルにしています。

from datetime import *

year = input("年:")
month = input("月:")
day = input("日:")

week = ["月","火","水","木","金","土","日"]
inputDate = year + month + day
date = datetime. strptime(inputDate,"%Y%m%d")

print(year + "年" + month + "月"+ day + "日は" + week[date.weekday()] + "曜日です")

以下で入力で受けた文字列を "datetime.strptime"で数字に変換します。

date = datetime.strptime(input_date,'%Y/%m/%d')

曜日を調べます。

week[date.weekday()]

datetimeオブジェクトのweekday()メソッドで、月曜日が0で日曜日が6の整数値が得られるので

week = ["月","火","水","木","金","土","日"]

から曜日を抽出します。

そして、ツエラーの公式です。この公式を使ったものを作っていきます。

一度で答えが出るように変形しています。

year = 1970
month = 7
day = 24

if month <= 2:
 year -= 1
 month += 12

w = day + int((13 * month + 8) / 5) + year + int(year / 4) - int(year / 100) + int(year / 400)
x = w % 7

ws = ["日", "月", "日", "水", "木", "金", "土"]
print(ws[x] + "曜日")

1月・2月はそれぞれ前年13月・14月として計算するので、その時の処理。

if month <= 2:
 year -= 1
 month += 10

そしてツエラーの公式に当てはめて、

w = day + int((13 * month - 1) / 5) + year + int(year / 4) - int(year / 100) + int(year / 400)

曜日を抽出します。

ws = ["日", "月", "日", "水", "木", "金", "土"]

そして最後に出力です。インデックスから曜日を求めます。

print(ws[x] + "曜日")

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