がるの健忘録

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

時間関連のロジックへの覚書

最近よ〜けあちこちで拝見するので(苦笑


曜日を計算する場合「ツェラーの公式」使うと便利です。
int(この場合「整数型としてのint」ではなくて「端数切捨て処理」のほう)処理だけ気をつけましょう。
昔、Perlでこのロジック作ったときにしくじりました(苦笑
いくつかパターンありますが、一例はこちら。書式元はPerlです。
(年 + int(年/4) - int(年/100) + int(年/400) + int*1 + 日 - 678912
ただし、1月と2月は前の年の13月、14月として計算。


秒単位の計算はエポック…が便利なのですが。2037年問題とかがあるので、使っている言語の型には要注意。


このあたりを把握してると随分と楽かなぁ?

*1:13*月 + 8)/5) + 日) %7 コッチはC言語系で見つけました。 100c + y 年 m 月 d 日の曜日は [21c/4] + [5y/4] + [26(m + 1)/10] + d‐1 (mod 7) いずれも、0が日曜日〜6が土曜日。 日付を計算する場合。ユリウス日を検討してみましょう。「n日前」「n日後」って類の処理がものすごく楽〜〜に出来るので。 西暦(y年m月d日)から準ユリウス日(MJD)に変換する式はフリーゲルの公式っていう公式を用います。 int(365.25*年) + int(年/400) - int(年/100) + (30.59(月-2