掲示板利用宣言

 次のフォームをすべてチェックしてからご利用ください。

 私は

 題名と投稿者名は具体的に書きます。
 課題の丸投げはしません。
 ソースの添付は「HTML変換ツール」で字下げします。
 返信の引用は最小限にします。
 環境(OSとコンパイラ)や症状は具体的に詳しく書きます。
 返信の付いた投稿は削除しません。
 マルチポスト(多重投稿)はしません。

掲示板2

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧

No.24165

zellerの公式について
投稿者---あきき(2005/11/15 22:50:24)


何か勘違いをしているかもしれませんが、zellerの公式についてこの2つの違いを皆さんに聞かせてください。その年の最初の曜日を求める一般的に知られているzellerの公式というのは

Y + ( Y / 4) - ( Y / 100 ) + ( Y / 400 ) + (( 13 * M + 8 ) / 5 + D ) % 7
と思いますが、かずまさんはNO3868で、
w = (y + (y-1)/4 - (y-1)/100 + (y-1)/400) % 7;//←ここ
for (m = 1; m <= 12; m++) {
z = (m==2) ? 28+(y%4==0 && y%100 || y%400==0) : 30+(0x15aa>>m&1);
for (i = 0, d = 1; d <= z; d++) {
x[m-1][i][w] = d;
if (++w == 7) w = 0, i++;
}
}
y(年)だけでm(月)、d(日)を必要としていません。斜線の部分の意味が分かりませんので、その式がどこから出てきたのかご指摘のほどお願いします


この投稿にコメントする

削除パスワード

発言に関する情報 題名 投稿番号 投稿者名 投稿日時
<子記事> Re:zellerの公式について 24173 REE 2005/11/16 10:28:03
<子記事> Re:zellerの公式について 24181 Blue 2005/11/17 02:14:08
<子記事> 解決!ありがとうございます 24253 あきき 2005/11/19 22:15:00


No.24173

Re:zellerの公式について
投稿者---REE(2005/11/16 10:28:03)


>何か勘違いをしているかもしれませんが、zellerの公式についてこの2つの違いを皆さんに聞かせてください。その年の最初の曜日を求める一般的に知られているzellerの公式というのは

>Y + ( Y / 4) - ( Y / 100 ) + ( Y / 400 ) + (( 13 * M + 8 ) / 5 + D ) % 7

それは、任意の年月日の曜日を求める式でしょう?
最初の曜日を求めるのならば、MとDに1を代入すればよいのでは?

>y(年)だけでm(月)、d(日)を必要としていません。

その年の最初の曜日を求めるのになぜ月日が必要なのですか?

>斜線の部分の意味が分かりませんので、

斜線の部分って・・ このことですか?
http://www9.plala.or.jp/sgwr-t/c/sec03.html#s3-2



この投稿にコメントする

削除パスワード

No.24177

Re:zellerの公式について
投稿者---あきき(2005/11/17 00:11:12)


>>Y + ( Y / 4) - ( Y / 100 ) + ( Y / 400 ) + (( 13 * M + 8 ) / 5 + D ) % 7
>
>それは、任意の年月日の曜日を求める式でしょう?
>最初の曜日を求めるのならば、MとDに1を代入すればよいのでは?
>
それだから、
Y + ( Y / 4) - ( Y / 100 ) + ( Y / 400 ) + ((13 * 1 + 8) / 5 + 1) % 7
       ↓
Y + ( Y / 4) - ( Y / 100 ) + ( Y / 400 ) +5
となるのかなと思いきや、次のように表現されています。

w = (y + (y-1)/4 - (y-1)/100 + (y-1)/400) % 7;//注1

1 yが(y-1)に変わっている事
2 +5が消えていること。
3 注1の式に対して、%7されている事
この3点のアルゴリズムが分らず悩んでいます


この投稿にコメントする

削除パスワード

No.24180

Re:zellerの公式について
投稿者---si(2005/11/17 01:35:42)


zellerの公式において
1月と2月は、前年の13月、14月として求めます。
ですので、Y が (Y-1) となっているのです。


この投稿にコメントする

削除パスワード

No.24207

Re:zellerの公式について
投稿者---あきき(2005/11/18 01:09:19)


>1月と2月は、前年の13月、14月として求めます。
>ですので、Y が (Y-1) となっているのです。

その1月、2月と他の月の区別なく無条件に式に当てはめている様に見えますが。3月以降の月の場合でも、Y が (Y-1) となっていないでしょうか。



この投稿にコメントする

削除パスワード

No.24208

Re:zellerの公式について
投稿者---ぽこ(2005/11/18 01:32:11)


うろ覚えなのですが。。
確か、西暦1年1月1日は日曜日です。
うるう年でない年は、元旦の曜日が前年から1日ずれ、
うるう年である時は、元旦の曜日が前年から2日ずれたと記憶しています。

例えば、2000年だと(2000+うるう年の数)日だけ曜日がずれることになり、
2000年の元旦の曜日は(2000+うるう年の数)%7で求められるのではないでしょうか?


この投稿にコメントする

削除パスワード

No.24210

Re:zellerの公式について
投稿者---ぽこ(2005/11/18 01:42:51)


>うろ覚えなのですが。。

うろ覚えの元ネタ(西暦1年の元旦の曜日は?)
http://wakouji.at.infoseek.co.jp/y2k/y2k11.htm
で、
365%7=1(うるう年でない時は元旦の曜日は1つずれる)
366%7=2(うるう年の時は元旦の曜日は2つずれる)

西暦Y年だと
(Y−1) − ((Y−1)/100) + ((Y-1)/400) ←前年までで何日ずれたか?
西暦Y年の分で1日ずれるから
(Y−1) − ((Y−1)/100) + ((Y-1)/400) + 1
まとめると
Y − ((Y−1)/100) + ((Y-1)/400) ←西暦1年からずれた日数の合計

#なんか嘘臭いな。。


この投稿にコメントする

削除パスワード

No.24212

Re:zellerの公式について
投稿者---ぽこ(2005/11/18 01:57:46)


すみません。
Blueさんの投稿見てませんでした。。orz



この投稿にコメントする

削除パスワード

No.24220

Re:zellerの公式について
投稿者---Hermit(2005/11/18 19:12:43)


たしか・・・
>うるう年でない年は、元旦の曜日が前年から1日ずれ、
こっちはいいけど
>うるう年である時は、元旦の曜日が前年から2日ずれたと記憶しています。
こっちは・・・同じになるんじゃなかったかな・・・
で、1月1日は、前年扱いになるので、ほんとに1月1日がずれるのは
うるう年の翌年になるんじゃないでしたっけ?

違ってたらごめんね・・・あまり調べる気にはなれなかったので適当です


この投稿にコメントする

削除パスワード

No.24221

Re:zellerの公式について
投稿者---Hermit(2005/11/18 19:26:36)


>で、1月1日は、前年扱いになるので、ほんとに1月1日がずれるのは
>うるう年の翌年になるんじゃないでしたっけ?

ここミス、「ほんとに1月1日の曜日が前年と同じになるのは、」だな・・・きっと・・・たぶん


この投稿にコメントする

削除パスワード

No.24209

Re:zellerの公式について
投稿者---RAPT(2005/11/18 01:36:11)


>> 1月と2月は、前年の13月、14月として求めます。
>> ですので、Y が (Y-1) となっているのです。
>
> その1月、2月と他の月の区別なく無条件に式に当てはめている様に見えますが。
> 3月以降の月の場合でも、Y が (Y-1) となっていないでしょうか。

え? その年の1月1日の曜日を求める式なんですよね?
だとしたら、3月とか関係ないかと。

> w = (y + (y-1)/4 - (y-1)/100 + (y-1)/400) % 7;//←ここ

この式のどこに月日を特定する要素があるとおっしゃるのでしょうか。
# 元々が、m = d = 1; を仮定して変形させた式だと認識して
# いるのですが、私、何か勘違いしていますか?



この投稿にコメントする

削除パスワード

No.24215

Re:zellerの公式について
投稿者---あきき(2005/11/18 08:00:35)


間違えました。月日を考慮する必要はありませんでした。


この投稿にコメントする

削除パスワード

No.24217

Re:zellerの公式について
投稿者---shu(2005/11/18 12:14:32)


なぜ間違えたのか?
なにをどう間違えたのか?
なぜ、月日を考慮する必要が無いのか?

ただ、

>間違えました。月日を考慮する必要はありませんでした。

だけでは、なにも解決していないと思われます。


この投稿にコメントする

削除パスワード

No.24181

Re:zellerの公式について
投稿者---Blue(2005/11/17 02:14:08)


初級C言語Q&A(15) - Q 【曜日の求め方】
を参考にどうぞ。


この投稿にコメントする

削除パスワード

No.24219

Re:zellerの公式について
投稿者---あきき(2005/11/18 17:46:39)


返信有難うございます。早速サイトを見て
みます


この投稿にコメントする

削除パスワード

No.24253

解決!ありがとうございます
投稿者---あきき(2005/11/19 22:15:00)


皆様のおかげで、無事解決できました。
サイトの紹介や助言の数々ありがとうございました。


この投稿にコメントする

削除パスワード

管理者用メニュー    ツリーに戻る    携帯用URL    ホームページ    ログ    タグ一覧