2012年6月15日金曜日

日付から曜日を暗算できるか?


メールやミーティングログを書いている時に
「この日って何曜日だっけ」と調べることがしばしばある。
いちいち調べることなく暗算できないか。

日付から曜日を計算する公式自体は存在していて、
有名なものに

ツェラーの公式 - Wikipedia
http://ja.wikipedia.org/wiki/%E3%83%84%E3%82%A7%E3%83%A9%E3%83%BC%E3%81%AE%E5%85%AC%E5%BC%8F

(Wikipedia の式はなんで 26/10 を約分していないのかわからん。)
しかしこの公式を全部覚えるのは大変だし、
いちいち暗算するくらいなら調べたほうが早いだろう。

ここで、暗算できることを優先して考えてみる。
だいたい「あの日は何曜日だっけ」と思う対象は
現在から少し先の未来だろう。
というわけで、特定の月に限定して
大胆な単純化を行ってみると、結果はたとえば

  (日付の日の部分) - 3 mod 7   # 今月(2012/06)の場合

とまで単純化出来る。
ここでは値が 0 のときが日曜日としている。
"-3" というのは 2012/06 であることに由来する数字だ。
これを「今月の数字」と呼ぶことにする
この部分は毎月変わるのでそのたびに覚え直しが必要だが、
ツェラーの公式全体を覚えて計算することに比べれば楽だろう。

来月の場合は、
「今月は何日まであるか」から 28 を引いた数字を
今月の数字に足したものとなる。
今月(6 月)は 30 日までなので来月(7 月)の数字は "-1" になる。

多少の練習は必要だろうが、それなりに実用性はありそうだ。

追記:手元の Google 日本語入力の場合は、「きょう」と入力すると「金曜日」が候補に挙がった。

0 件のコメント:

コメントを投稿