ツェラーの公式

最終更新日時:2007-07-12 16:56:54
その他のめも

ツェラーの公式(Zeller's congruence)を使うと、年月日からその日が何曜日であるかを算出することができます。

 W = (year + [year / 4] - [year / 100] + [year / 400] + [(13 * month + 8) / 5] + day) % 7


year:年。ただし、1月、2月はそれぞれ前年とする
month:月。ただし、1月、2月はそれぞれ13月、14月とする
day:日
※「%」は剰余演算子
※[ n ]はガウス記号。nを超えない最大の整数をとる

結果は、0~6が返り、それぞれ0=日曜、1=火曜,,,6=土曜となります。
なお、この公式は西暦1582年10月15日金曜日(グレゴリオ暦施行日)以降で有効です。

例えばPerlで書くと以下のようになります。

 if ($month < 3) {
    $year --;
    $month += 12;
  }
  $w = ($year + int($year / 4) - int($year / 100) + int($year / 400) + int((13 * $month + 8) / 5) + $day ) % 7;


お問い合わせは 掲示板 にて。