ツェラーの公式
[Wikipedia|▼Menu]
.mw-parser-output .ambox{border:1px solid #a2a9b1;border-left:10px solid #36c;background-color:#fbfbfb;box-sizing:border-box}.mw-parser-output .ambox+link+.ambox,.mw-parser-output .ambox+link+style+.ambox,.mw-parser-output .ambox+link+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+style+.ambox,.mw-parser-output .ambox+.mw-empty-elt+link+link+.ambox{margin-top:-1px}html body.mediawiki .mw-parser-output .ambox.mbox-small-left{margin:4px 1em 4px 0;overflow:hidden;width:238px;border-collapse:collapse;font-size:88%;line-height:1.25em}.mw-parser-output .ambox-speedy{border-left:10px solid #b32424;background-color:#fee7e6}.mw-parser-output .ambox-delete{border-left:10px solid #b32424}.mw-parser-output .ambox-content{border-left:10px solid #f28500}.mw-parser-output .ambox-style{border-left:10px solid #fc3}.mw-parser-output .ambox-move{border-left:10px solid #9932cc}.mw-parser-output .ambox-protection{border-left:10px solid #a2a9b1}.mw-parser-output .ambox .mbox-text{border:none;padding:0.25em 0.5em;width:100%;font-size:90%}.mw-parser-output .ambox .mbox-image{border:none;padding:2px 0 2px 0.5em;text-align:center}.mw-parser-output .ambox .mbox-imageright{border:none;padding:2px 0.5em 2px 0;text-align:center}.mw-parser-output .ambox .mbox-empty-cell{border:none;padding:0;width:1px}.mw-parser-output .ambox .mbox-image-div{width:52px}html.client-js body.skin-minerva .mw-parser-output .mbox-text-span{margin-left:23px!important}@media(min-width:720px){.mw-parser-output .ambox{margin:0 10%}}

この記事は検証可能参考文献や出典が全く示されていないか、不十分です。出典を追加して記事の信頼性向上にご協力ください。(このテンプレートの使い方
出典検索?: "ツェラーの公式" ? ニュース ・ 書籍 ・ スカラー ・ CiNii ・ J-STAGE ・ NDL ・ dlib.jp ・ ジャパンサーチ ・ TWL(2018年10月)

ツェラーの公式(ツェラーのこうしき、: Zeller's congruence)とは西暦グレゴリオ暦またはユリウス暦)のから、その日が何曜日であるかを算出する公式である。クリスティアン・ツェラー (Christian Zeller) が考案した[1]ユリウス通日を求め、そこから曜日を求める計算と本質は同じである。
公式

y {\displaystyle y} 年 m {\displaystyle m} 月 d {\displaystyle d} 日の曜日を求める。

ただし、1月2月は、前年のそれぞれ13月・14月として扱う。たとえば、2024年1月1日・2月1日は、2023年13月1日・14月1日とする。また、紀元前 y ^ {\displaystyle {\hat {y}}} 年は西暦 1 − y ^ {\displaystyle 1-{\hat {y}}} 年として扱う。たとえば、紀元前1年・前2年・前3年は、0年・?1年・?2年となる(天文学的紀年法)。

曜日 h {\displaystyle h} ( h {\displaystyle h} は、0?6で土曜日?金曜日を表す。) は次の式で求められる: h = { d + ⌊ 26 ( m + 1 ) 10 ⌋ + Y + ⌊ Y 4 ⌋ + Γ } mod 7 {\displaystyle h=\left\{d+\left\lfloor {\frac {26(m+1)}{10}}\right\rfloor +Y+\left\lfloor {\frac {Y}{4}}\right\rfloor +{\mathit {\Gamma }}\right\}\mod 7}

Γ {\displaystyle {\mathit {\Gamma }}} はグレゴリオ暦 (Gregorian) かユリウス暦 (Julian) かで変わる項で、 Γ = { − 2 C + ⌊ C 4 ⌋ : Gregorian  ( 1582 ⪅ y ) − C + 5 : Julian  ( 4 ⪅ y ⪅ 1582 ) {\displaystyle {\mathit {\Gamma }}={\begin{cases}-2C+\left\lfloor {\frac {C}{4}}\right\rfloor &{\mbox{: Gregorian }}(1582\lessapprox y)\\-C+5&{\mbox{: Julian }}(4\lessapprox y\lessapprox 1582)\end{cases}}}

ただし C = ⌊ y 100 ⌋ {\displaystyle C=\left\lfloor {\frac {y}{100}}\right\rfloor } Y = y mod 100 {\displaystyle Y=y\mod 100} 。

⌊ x ⌋ {\displaystyle \lfloor x\rfloor } はxを超えない(x以下)の最大の整数(床関数)であり、 x mod n {\displaystyle x\mod n} は x {\displaystyle x} を n {\displaystyle n} で割った剰余である。 C {\displaystyle C} と Y {\displaystyle Y} は、(西暦が4桁の場合)西暦の上2桁と下2桁を表す中間変数で、たとえば2024年なら、それぞれ20と24になる。

曜日
h1234560
D7123456

日付の国際規格である ISO 8601が定める D {\displaystyle D} (1?7で月曜日?日曜日)を求めるには、次の式 D = [ { d + ⌊ 26 ( m + 1 ) 10 ⌋ + Y + ⌊ Y 4 ⌋ + Γ + 5 } mod 7 ] + 1 {\displaystyle D=\left[\left\{d+\left\lfloor {\frac {26(m+1)}{10}}\right\rfloor +Y+\left\lfloor {\frac {Y}{4}}\right\rfloor +{\mathit {\Gamma }}+5\right\}\mod 7\right]+1}

を使う。

以上の2つの計算式は、それぞれの暦を過去または未来に単純に延長して使うのであれば、年数の有効範囲の限界はない。しかし歴史上の実際の年月日についての曜日を知るには、グレゴリオ暦に切り替わった日付に注意が必要である(グレゴリオ暦#各国・各地域における導入を参照)。さらに西暦4年3月1日以前の実際の年月日についての曜日を知るには、閏年の規則そのものが異なるので、上記の計算式におけるユリウス暦の公式も適用できない。
コンピュータでの計算

コンピュータの多くの環境では負数剰余を保証しないので、整数の合同関係を使って Γ = { 5 C + ⌊ C 4 ⌋ : Gregorian  ( 1582 ⪅ y ) 6 C + 5 : Julian  ( 4 ⪅ y ⪅ 1582 ) {\displaystyle {\mathit {\Gamma }}={\begin{cases}5C+\left\lfloor {\frac {C}{4}}\right\rfloor &{\mbox{: Gregorian }}(1582\lessapprox y)\\6C+5&{\mbox{: Julian }}(4\lessapprox y\lessapprox 1582)\end{cases}}}

と変形する。

西暦0年紀元前1年3月1日以前に対する場合、 C {\displaystyle C} と Y {\displaystyle Y} を求める式にも修正が必要である。適度に大きい100の倍数を y {\displaystyle y} に足して、負にならないようにする。
ツェラーの公式の導出

ツェラーの公式はフェアフィールド (Fairfield) の公式の変形である。以下に、グレゴリオ暦を例に、その変形過程を記載する。
フェアフィールドの公式

1年1月1日(0年13月1日) ? y 年 m 月 d 日の日数を求める。ただし、m = 1, 2 の場合は、y = y ? 1, m = m + 12とし、1年を、3月1日 ? 14月28日(閏年は29日)と再定義する。

1年1月1日(0年13月1日)を含めた、y 年 m 月 d 日迄の日数は以下の通り。

 1年1月1日(0年13月1日) ? 1年2月28日(0年14月28日)

  ・・・  31 + 28 (日)

 1年3月1日 ? ( y ? 1 ) 年14月末日(この時点では閏年は考慮しない)

  ・・・  365 ( y ? 1 ) (日)

 1年1月1日(0年13月1日) ? ( y ? 1 ) 年14月末日の閏年の回数

  ・・・  [ ( 1 + ( y ? 1 ) ) / 4 ) ] - [ ( 1 + ( y ? 1 ) ) / 100 ) ] + [ ( 1 + ( y ? 1 ) ) / 400 ) ]

      = [ y / 4 ] - [ y / 100 ] + [ y / 400 ] (日)

 y 年3月1日 ? y 年 ( m ? 1 ) 月末日

  ・・・  [ 306 ( m + 1 ) / 10 ] ? 122 (日) (以下表を参照)


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:23 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef