1

datetimepicker から年齢を計算したい。ユーザーがdatetimepickerから日付を選択するとすぐに年齢が計算され、年齢テキストボックスに即座に自動的に表示されます。これは私がコンソールアプリケーションで行ったことです

 int age = 0;
 DateTime currentDate = DateTime.Parse( DateTime.Now.Date.ToShortDateString());           
 Console.WriteLine(currentDate);
 Console.WriteLine("Please enter your birthdate");
 DateTime birthdate = DateTime.Parse( Console.ReadLine());
 age = currentDate.Year - birthdate.Year;
 if (currentDate.Month <birthdate.Month)
  {
       age--;
  }
 else if ((currentDate.Month >= birthdate.Month) 
            && (currentDate.Day < birthdate.Day))
 {
       age--;
 }

 Console.WriteLine(age);

winformアプリケーションで年齢を計算するのと同じロジックを実行できますが、その後、ユーザーがdatetimepickerから年齢を選択した直後に年齢テキストボックスにその年齢を自動的に表示する方法がわかりません。

4

4 に答える 4

0

わかりました、それはかなり単純です。OnValueChangeddatepicker のイベントをリッスンする eventhandler を追加するだけです。ヘルプについては、 msdnページを参照してください。そして、このようにテキストボックスの値を設定するだけmyTextBox.Text = new calculated valueです。

于 2013-03-07T09:16:47.020 に答える
0

ValueChanged イベントを DateTimePicker に追加するだけです。

MSDN ValueChanged イベント

このイベントは、フォームの値が変更された後に呼び出されます。コードは次のようになります。

dateTimePicker.ValueChanged += new EventHandler(dateTimePicker_ValueChanged);

void dateTimePicker_ValueChanged(object sender, EventArgs e)
{
    DateTime birthdate = dateTimePicker.Value;
    //Recalculate the birthdate and set Textbox
}
于 2013-03-07T09:22:22.777 に答える
0

ここにバグがあると思います:

else if ((currentDate.Month >= birthdate.Month) 
            && (currentDate.Day < birthdate.Day))
 {
       age--;
 }

そのはず(currentDate.Month == birthdate.Month)

于 2013-03-07T09:30:44.990 に答える