西暦1年1月1日からの通算日数を調べる

Web(C#)でメソッドを追加して、西暦1年1月1日からの通算日数を調べます。
カレンダの話 で説明したように、西暦1年は架空の年なので年のため。 (*^_^*)

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

プログラムの説明

  1. ソースコードの記述欄に、共通で使用するデータを定義して、幾つかのメソッド(関数)を追加します。
    関数の詳細は 前田稔の超初心者のプログラム入門 から 「C#/生年月日を入力して、曜日と生存日数を表示」を参照して下さい。
    MTBL は月ごとの日数を累積したテーブルです。
    yy,mm,dd は関数で共通に参照する領域です。
  2. ソースコードの記述欄に、次のソースコードを追加して下さい。
        int[]    MTBL= { 0,31,59,90,120,151,181,212,243,273,304,334 };
        int      yy,mm,dd;
    
        void Button1_Click(object sender, EventArgs e)
        {   string[] ymd;
            string   str;
    
            str= TextBox1.Text;
            ymd= str.Split(new char[] {'/'});
            yy = Convert.ToInt32(ymd[0]);
            mm = Convert.ToInt32(ymd[1]);
            dd = Convert.ToInt32(ymd[2]);
            Label1.Text = "西暦1年1月1日からの通算日数=" + Convert.ToString(days());
        }
        //★ 西暦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 に生年月日をタイプしてボタンをクリックすると Label1 に通算日数が表示されます。
    通算日数は、西暦1年1月1日から今日までの日数ですから、毎日答えが変わるので悪しからず。 (^_^;

youbi3.aspx を呼び出す

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