アカウント名:
パスワード:
とくに特別な日でもないのにカレンダーが誤動作するんですかね?逆にその謎の技術力が気になります
RTCが年を4bitで表現していて、2000~2015年まで表現可能で、2016年になると、2000年に戻ってしまう、とかですかね。
閏年と曜日と両方考えると、その最小公倍数である28年分のカレンダーがあれば万年カレンダーになりますので、RTCが1988年に設定できるなら、読み書きで年を28ずらすという読み替えだけで対応できます(2016年も1988年もどちらも閏年で1月1日は金曜日)。でも、RTCが1988年に対応してなかったら、ちょっと面倒くさそう。
> 28年分のカレンダーがあれば万年カレンダー
それでは精々100年カレンダー程度にしかならないかと。
グレゴリオ暦は400年でちょうど曜日も含めて一周するようにできてるから400年分あればあとは余りを取るだけで行けるはず。
400年分持つくらいならまじめに計算したほうが楽でござる。
2006年発売なので、BCDの1桁にゲタ2006っていうのも有りそうな悪寒。
2016年はうるう年なので、そっち関係なんじゃないかな。そこらへんをRTCのカレンダーの処理に任せてたらソフトでの修正は簡単じゃないですよね。
ハードウェアは修正容易ではないのでカレンダーは単なるバイナリカウンターにして数字と日付の対応処理をソフトで処理すればバグがあってもアップデートで修正できるのに…
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
身近な人の偉大さは半減する -- あるアレゲ人
どんなタコな実装をすれば (スコア:0)
とくに特別な日でもないのにカレンダーが誤動作するんですかね?
逆にその謎の技術力が気になります
Re:どんなタコな実装をすれば (スコア:2)
RTCが年を4bitで表現していて、2000~2015年まで表現可能で、
2016年になると、2000年に戻ってしまう、とかですかね。
閏年と曜日と両方考えると、その最小公倍数である28年分のカレンダーがあれば万年カレンダーになりますので、RTCが1988年に設定できるなら、読み書きで年を28ずらすという読み替えだけで対応できます(2016年も1988年もどちらも閏年で1月1日は金曜日)。でも、RTCが1988年に対応してなかったら、ちょっと面倒くさそう。
Re:どんなタコな実装をすれば (スコア:1)
> 28年分のカレンダーがあれば万年カレンダー
それでは精々100年カレンダー程度にしかならないかと。
Re: (スコア:0)
グレゴリオ暦は400年でちょうど曜日も含めて一周するようにできてるから400年分あればあとは余りを取るだけで行けるはず。
Re:どんなタコな実装をすれば (スコア:1)
400年分持つくらいならまじめに計算したほうが楽でござる。
Re:どんなタコな実装をすれば (スコア:2)
2006年発売なので、BCDの1桁にゲタ2006っていうのも有りそうな悪寒。
Re: (スコア:0)
2016年はうるう年なので、そっち関係なんじゃないかな。
そこらへんをRTCのカレンダーの処理に任せてたらソフトでの修正は簡単じゃないですよね。
Re: (スコア:0)
ハードウェアは修正容易ではないのでカレンダーは単なるバイナリカウンターにして数字と日付の対応処理をソフトで処理すればバグがあってもアップデートで修正できるのに…