スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

Zellerの公式の年に関する部分について

Wikipediaに載っているZellerの公式の、年に関する部分がどのようにして導出されるのかを考察。グレゴリオ暦の場合について確認する。

Zellerの公式は、年月日が与えられたとき、その曜日を計算するための式である。

Wikipediaに書かれているZellerの公式は次の通りである:曜日を求めたい年月日の年の千の位と百の位の連続の数字(例えば2310年ならば23)をJ、年の下2桁(例えば2310年ならば10)をK、月をm、日をq、曜日をhとする。ただし、求めたい日の月が1月、2月の場合はそれぞれ前年の13月、14月とする(例えば、2007年1月1日なら2006年13月1日とする)。このとき、

h ≡ q + [(m+1)26/10] + K + [K/4] + [J/4] - 2J (mod 7). 

hが0なら土曜日、1なら日曜日、2なら月曜日、3なら火曜日、4なら水曜日、5なら木曜日、6なら金曜日である。[x]は実数xを超えない最大の整数である。

Wikipedia:ツェラーの公式

以下、上の公式の年に関する部分 K + [K/4] + [J/4] - 2J がどのようにして導出されるのかを考察する。

さて、Yを西暦の年とし、Lを年の万の桁よりも上位の連続の数字(例えば123456年ならば12)とすると、

Y = K + 100J + 10000L.  ……(1)

また、グレゴリオ暦における閏年のルールは、以下の通りである:

  • Yが4の倍数のとき、Yは閏年である
  • ただし、Yが100の倍数のとき、Yは閏年でない
  • ただし、Yが400の倍数のとき、Yは閏年である

これより、Zellerの公式の年に関する部分は

Y + [Y/4] - [Y/100] + [Y/400]  ……(2)

となる。これを式の一部に含むZellerの公式のほうが、よく見かける気がする。

式(1)を式(2)に代入すると、

Y + [Y/4] - [Y/100] + [Y/400] 
= K + 100J + 10000L + [(K+100J+10000L)/4] 
    - [(K + 100J + 10000L)/100] + [(K + 100J + 10000L)/400]
= K + 100J + 10000L + [K/4 + 25J + 2500L] 
    - [K/100 + J + 100L] + [K/400 + J/4 + 25L] 
= K + 100J + ([K/4] + 25J + 2500L) 
    - ([K/100] + J + 100L) + ([K/400 + J/4] + 25L)
= K + [K/4] - [K/100] + [K/400 + J/4]  + 124J + 12425L. 

K<100 より、

[K/100] = 0. 

また、J=4n+i (i=0,1,2,3) のとき、

[K/400 + J/4] 
= [K/400 + (4n+i)/4] 
= [K/400 + i/4 + n] 
= [K/400+i/4] + n 
= [(K+100i)/4] + n
= n, 

[J/4] 
= [(4n+i)/4] = [i/4 + n] 
= [i/4] + n = n. 

ゆえに、K<100 のとき、

[K/400 + J/4] = [J/4]

が成り立つ。したがって、

Y + [Y/4] - [Y/100] + [Y/400] 
= K + [K/4] - [K/100] + [K/400 + J/4]  + 124J + 12425L
= K + [K/4] + [J/4] + 124J + 12425L
≡ K + [K/4] + [J/4] - 2J (mod 7). 

【theme : 数学
【genre : 学問・文化・芸術

プロフィール

よしいず

Author:よしいず
MATHEMATICS.PDFというウェブサイトを運営しています。

管理の都合上、トラックバックとコメントはオフにしてあります。ブログ経験者なら分かっていただけると思いますが、スパム(アダルトやその他の宣伝)ばかりなのが現実です。

リンクは自由です。当サイトの記事に対する間違いの指摘・意見・感想などを述べた記事からのリンクは歓迎です。ただし、ブログ記事アップ直後はミスが多く、頻繁に修正します。場合によっては削除する可能性もあります。その際、何も断りもなく修正・削除しますがご了承ください。内容を参考にする場合には投稿後一週間ほど様子を見てからにしてください(笑)。

記事の間違いを指摘するときは、その具体的箇所、理由(仕様に反するなど)・根拠(参考にした文献など)、代替案(同じ結果を得るための正しいやり方)も教えてください。そうしないと、(指摘される側および第三者はその時点では無知の状態なので、)どこが間違いなのか分かりませんし、本当に間違っているのかどうかが判断・検証できません。実際、間違いだと指摘されたことが結局は正しかったというケースもありますので。

このブログのタイトル一覧

リンク
月別アーカイブ
カテゴリ
最新記事
検索フォーム
RSSリンクの表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。