生まれた曜日と生存日数を表示

Web(C#)で生年月日を入力して、生まれた曜日と生存日数を表示します。

前田稔(Maeda Minoru)の超初心者のプログラム入門

プログラムの説明

  1. ソースコードの記述欄に、共通で使用するデータを定義して、幾つかのメソッド(関数)を追加します。
    関数の詳細は 前田稔の超初心者のプログラム入門 から 「C#/生年月日を入力して、曜日と生存日数を表示」を参照して下さい。
    MTBL は月ごとの日数を累積したテーブルです。
    WTBL は曜日を表示するためのテーブルです。
    yy,mm,dd は関数で共通に参照する領域です。
  2. ソースコードを次のように修正して下さい。
        int[]    MTBL= { 0,31,59,90,120,151,181,212,243,273,304,334 };
        string[] WTBL= { "日","月","火","水","木","金","土" };
        int      yy,mm,dd;
    
        void Button1_Click(object sender, EventArgs e)
        {   string[] ymd;
            string   str;
            int      today,count,week;
    
            //西暦1年1月1日から今日までの日数を調べる
            yy= DateTime.Today.Year;
            mm= DateTime.Today.Month;
            dd= DateTime.Today.Day;
            today= days();
            //TextBox から入力された日付を取得
            str= TextBox1.Text;
            ymd= str.Split(new char[] {'/'});
            yy = Convert.ToInt32(ymd[0]);
            mm = Convert.ToInt32(ymd[1]);
            dd = Convert.ToInt32(ymd[2]);
            count= days();
            week= count%7;
            count= today-count+1;
            Label1.Text = "生年月日=" + str + "  曜日=" + WTBL[week] + "曜日    通算日数=" + Convert.ToString(count);
        }
        //★ 西暦1年1月1日からの通算日数を調べる関数
        int  days()
        {   int     w;
    
            w=  (yy-1)*365;         //年*365
            w+= (yy/4 - yy/100 + yy/400 + MTBL[mm-1] + dd);
            if (mm<3 && uruu(yy))  w--;
            return(w);
        }
        //★ 閏年を調べる関数
        bool  uruu(int year)
        {   if (year%400==0)    return(true);
            if (year%100==0)    return(false);
            if (year%4==0)      return(true);
            return(false);
        }
        
  3. TextBox に生年月日をタイプしてボタンをクリックすると、生まれた曜日と生存日数が表示されます。
    生存日数は今日までの日数ですから、毎日答えが変わるので悪しからず。 (^_^;

【NOTE】

生年月日のエラーは CompareValidator でチェックしているのですが、面白いことを発見しました。
100/5/6 がエラーになるのに 12/5/6 が通るのです。
和暦に対応しているのかなと思ったら 7/8/9 がエラーになります。
作成するアプリケーションによっては、詳しく調べる必要がありそうです。

youbi4.aspx のソースコード
ソースコードが表示されない場合は、ブラウザのメニューから「ソースの表示」を選択して下さい。

超初心者のプログラム入門(C# on-line game)