Skip to content

Latest commit

 

History

History
34 lines (27 loc) · 1.64 KB

3cbc18ed2db288.md

File metadata and controls

34 lines (27 loc) · 1.64 KB
title emoji type topics published
ツェラーの公式を使ったタイムスタンプ
🤖
tech
python
テスト
曜日判定
true

./go_straight/unit/timestamp.py

# ...

        if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
            if month == 2:
                calc = ((365 * year + year / 4 - year / 100 + year / 400 +
                         (306 * (month + 1)) / 10 + day) - 426) % 7
            elif month == 11:
                calc = ((365 * year + year / 4 - year / 100 + year / 400 +
                         (306 * (month + 1)) / 10 + day) - 427) % 7
            else:
                calc = ((365 * year + year / 4 - year / 100 + year / 400 +
                         (306 * (month + 1)) / 10 + day) - 428) % 7
        else:
            calc = (year + year / 4 - year / 100 + year / 400 +
                    (13 * month + 8) / 5 + day) % 7

# ...

go_straight、テスト実行時タイムスタンプとして使いました。

 公式がしっかりしていれば、多言語でも曜日判定プログラムとして使えます。私は他に、C#/Javaでも実装しました。うるう計算もしてあるので、かなり有用です。コード例は一部にします。全体がみたいとき、標準ライブラリを使っているので、Python3で動作します。日本語だと文字化けするようなテキストエディタを使っているので、英語で出力することにしました。その方が、世界共通語で理解しやすいと想います。