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

3

我知道回答为时已晚,但仍然,只需在 dateTimePicker 的 ValueChanged 事件中使用它,希望对某人有所帮助

private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
        {
            int Age = DateTime.Today.Year - dateTimePicker1.Value.Year; // CurrentYear - BirthDate

             txtAge.Text = Age.ToString();
        }
于 2013-09-22T10:58:53.687 回答
0

好的,这很简单。只需添加监听 datepicker 事件的OnValueChanged事件处理程序。请参阅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 回答