Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

ユリウス歴における特定の日の曜日をメモ用紙規模の計算で求める方法

ユリウス歴における特定の日の曜日をメモ用紙規模の計算で求める方法です。
...といっても、或る程度のマジックナンバー頼みになってしまうのですが(

たとえば、1912年5月12日の場合1900年代のマジックナンバー0を適用し

['sun','mon','tue','wed','thu','fri','sat'][(12 + [0,3,3,6,1,4,6,2,5,0,3,5][4] + 12 + (12 / 4) + 0) % 7]
=> "sun"

2020年7月24日(東京五輪開会式!)の場合は2000年代のマジックナンバー6を与えて

['sun','mon','tue','wed','thu','fri','sat'][(24 + [0,3,3,6,1,4,6,2,5,0,3,5][6] + 20 + (20 / 4) + 6) % 7]
=> "fri"

となります。
なんらかの事情でdateライブラリが使えない等々の場合は重宝するかも...しれません(無責任

定数頼みでない方法としてはZeller’s algorithm等々があるようです。
が、今回紹介した方法の方が圧倒的に早いですね。

参考もと

Mind パフォーマンス Hacks ―脳と心のユーザーマニュアル

Mind パフォーマンス Hacks ―脳と心のユーザーマニュアル