ツェラーの公式

今日発売の『まんがタイムきらら』所収の『ゆゆ式』。そこでツェラーの公式というのが紹介されていたので、試してみるべく、Pythonで書いてみました。私にはめずらしく、コマンドライン引数を取得するスクリプトです。

実際にこうした計算を自分ですることはないだろうと思いますが、知っておくことは重要だと思います。

# -*- coding: utf-8 -*-
# Zeller's congruence

import sys
from decimal import *

argvs = sys.argv
year = argvs[1]
month = argvs[2]
date = argvs[3]

if int(month) <= 2:
    month = str(int(month) + 12)
    year = str(int(year) - 1)

J = Decimal(year[0:2])
K = Decimal(int(year) % 100)
m = Decimal(month)
q = Decimal(date)

h = (q + (((m + 1) * 26) // 10) + K + (K // 4) + (J // 4) - (2 * J)) % 7

print(h)

追記

ツェラーの公式ってのは、年月日から曜日を導く公式です。書くの忘れてた。計算した値で曜日がわかるのですが、dictあたりを使って文字列で返してもよいかも知れません。

で、『ゆゆ式』ってのは、こんな漫画です。

ゆゆ式 (1) (まんがタイムKRコミックス)

ゆゆ式 (1) (まんがタイムKRコミックス)