2060年10月の第3週目の火曜日は何日?

 先日、『カレンダー』を使ったシステム開発で「●年●月の第●週目の●曜日を知りたい」と命令すると「●月●日」を返すプログラムを作りました。

手順を考える過程は、久しぶりのコーディングということもあり、プログラミングの面白さを想起されるものでした。


カレンダーで調べれば一目瞭然なのですが、例えば「2060年10月の第3週目の火曜日は何日ですか」と問われたらどう計算しますか?

某有名中学校の入試に出てきそうな問題です^^;


計算方法は1つではなく様々なパターンがあります。


一例として私はこんな方法を使いました。

前提として日曜始まりのカレンダーとします。

これは、曜日を決めなければ第●週が変わってしまうためです。


①まず、2060年10月の第3週目を計算します。

 1日は必ず第1週目となるため、1日から2週間後が第3週目に当たります。

 <10月1日 + (2週間x7日) = 10月15日

 ということで、10月15日が第3週目となりますが、この時点では曜日は不明です。


②次に、2060年10月15日が何曜日なのかを計算します。

 これは「ツェラーの公式」と呼ばれる式を使って、指定年月日の曜日を計算することができます。(ツェラーの公式での計算について解説していくと長くなってしまうため今回は割愛します。)

 公式に当てはめて計算すると...

 <2060年10月15日は金曜日>でした。


③今回は日曜始まりのカレンダーとしたので、日曜を起点0として土曜まで1ずつ足した表を作ります。

 日 = 0

 月 = 1

 火 = 2

 水 = 3

 木 = 4

 金 = 5

 土 = 6

 10月15日は金曜であるため<>を選択します。


④次に今回は調べたい火曜日を上の表から選択すると<>になります。

 起点とした10月15日から差分(5-2)を差し引くと調べたい日付が計算できます。

 <10月15日 - 3日 = 10月12日


ということで、「2060年10月の第3週目の火曜日は10月12日」でした^^)/

学生時代に将来こんな計算使わないよと思った数式も、普段使っているシステムで使われているかも知れません。


『さて、次の問題です。

2060年10月の第3火曜日は10月18日ですが、どう計算しますか?』


システム開発のご相談は是非こちらまで

インプラスホームページはこちら( https://implus.co.jp

このブログの人気の投稿

技術メモ「503 Service Unavailable」

グーグルグループのメーリングリストの返信先が個人になってしまう

『ネットワークドライブ』のトラブル