カレッヂ |
質問者 レスキュー
投稿日 4/30(月) 23:41:40
いつもお世話になっています。 電子日記帳で、過去の任意の年において、曜日計算ミスが出ることが分かりました。http://www.rescue.ne.jp/cgi/webdiary/sample/diary.cgi たとえば、1959年の12月⇒1960年1月で曜日がずれてしまいます。 1960年全体が1日ずれています。1956年の12月⇒1957年1月で曜日がずれてしまいます。 1956年全体が1日ずれています。その間の1958-1959,1957-1958は合っています。 万年カレンダーなので、全体がずれる場合は分かるのですが、なぜ途中で計算が おかしくなるのか、どうしてもバグが見つかりません。 正確なカレンダーは http://www.beans-company.ne.jp/demo/calender/ で確認することができます。 もしプログラムのどこが原因なのか、発見された方がいらっしゃいましたら 是非レポートをお願いしたく、ここにお願い申し上げます。 メールでも結構です。rescue@rescue.ne.jp |
回答者 おおがみ
[削除]
投稿日 5/1(火) 11:04:23
692行目 $base = (($year - 1) * 365) + (($year - 1) / 4) - (($year - 1) / 100) + (($year - 1) / 400); を $base = (($year - 1) * 365) + int(($year - 1) / 4) - int(($year - 1) / 100) + int(($year - 1) / 400); とすればよさげですな。 計算部分がどこか示してくれると判りやすいのに... |
質問者 レスキュー
[削除]
投稿日 5/1(火) 12:18:04
レポートありがとうございます。 どの部分が影響しているのか不明だったので、どの計算部分かも質問としては 特定しませんでした。なるほど、小数点以下の誤差が発生していたのですね。 それで、数字(西暦)によって小数点以下の変化により、西暦によって ずれたりずれなかったりしていたようで、ここは何回も見ましたが、 なかなか気がつきませんでした。コロンブスのたまご状態でした。 ありがとうございました。 |
このページは終了したので返信(回答)は書きこめません
Web裏技 |