Bフレッツの開通を記念して、数年前までに集めた、C言語プログラム(関数)を順次公開するね。

既にどこかで、多くの方々に見られていたものかもしれない。
ただ、サポート等は一切できないと思う。ご質問にお答えすることもままならないかもしれない。ご容赦を。

さて、1本目、曜日を正しく計算してくれる関数の公開。

染色体の異常に起因するダウン症患者、知的発達が遅れるといいながら、西暦と月日を尋ねれば瞬時に曜日を言い当ててしまう、ということが簡単にできるらしい。

しかし、一般のわれわれには、曜日の計算はなかなかできない。が、ツェラー公式 が判れば、スマートに計算できるはず。

<関数名>
  dayOfWeek —- 西暦年月日からその曜日を算出

<形式>
  int dayOfWeek(int year, int month, int day);

<引数>
  year, month, day 西暦年月日

<関数値>
  各曜日に対応する 0 〜 6 の値
     0: 日、1: 月、2: 火、3: 水、4: 木、5: 金、6: 土

<注意事項>
  引数として渡される西暦年月日が実在するかどうか については、本関数内ではチェックしない。
  1582年10月15日以降の日についてのみ正しく算出する。

用例
  dayOfWeek(2004, 8, 14);

<関数本体>
  dayOfWeek.c

<説明>
  ツェラー (Zeller) の公式 による計算法。
  現在使われているグレゴリオ暦の初日は1582年10月15日(金曜)である。本関数はその日以降の曜日を正しく算出。
  ちなみに、1582年10月15日(金曜)の前日はなんと、ユリウス暦1582年10月4日(木曜)。時間の空白があったわけだね(笑)。また、曜日だけは連続していて、休むことの大切さ、そこにもしみじみ感じる。

Comments are closed.

Post Navigation