我想从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中选择年龄后立即自动显示年龄文本框中的年龄。
答案 0 :(得分: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();
}
答案 1 :(得分:0)
好的,这很简单。只需添加eventhandler,即可收听datepicker的OnValueChanged
事件。请参阅msdn页面以获取帮助。
只需设置文本框的值,如myTextBox.Text = new calculated value
。
答案 2 :(得分:0)
只需将ValueChanged事件添加到DateTimePicker。
在表单更改其值后调用此事件。 您的代码将如下所示:
dateTimePicker.ValueChanged += new EventHandler(dateTimePicker_ValueChanged);
void dateTimePicker_ValueChanged(object sender, EventArgs e)
{
DateTime birthdate = dateTimePicker.Value;
//Recalculate the birthdate and set Textbox
}
答案 3 :(得分:0)
我认为你有一个错误:
else if ((currentDate.Month >= birthdate.Month)
&& (currentDate.Day < birthdate.Day))
{
age--;
}
应为(currentDate.Month == birthdate.Month)