9.1 曜日を求める

ツェラー(Zeller)の公式を使うと
西暦の年月日から曜日を求めることができます。

例題では,その日が日曜日であれば0,
月曜日であれば1,…,土曜日であれば6を
返却する関数を示します。

例題プログラムでは,2月の日数が一定でないので,
1月・2月は前年の13月,14月とみなしています。

なお,うるう年は4で割れる年ですが,
100で割れるが400で割れない年は,
平年となります。

[プログラム]

  private int WeekDay(int Y, int M, int D)
   // ツェラー(Zeller)の公式
  {
     int YY=Y;
     int MM=M;
     if (M<3){YY=Y-1; MM=M+12;}
     return (YY +(YY/4)-(YY/100)+(YY/400)+(13*MM + 8)/5+D) % 7;
  }
  private void button1_Click(object sender, System.EventArgs e)
  {
     int Y=int.Parse(textBox1.Text);
     int M=int.Parse(textBox2.Text);
     int D=int.Parse(textBox3.Text);
     int R=WeekDay(Y,M,D);
     string X="日月火水木金土";
     label4.Text = X[R]+"曜日";
  }




1. 基本的なアルゴリズム

2. 基本的なデータ構造

3. 操作を伴うデータ構造

4. 探索

5. 再帰的アルゴリズム

6. ソート

7. 集合

8. 文字列処理

9. 色々なアルゴリズム


上のタイトルをクリックします