C# 从datetimepicker计算年龄,并立即在文本框中显示该年龄
我想从datetimepicker计算年龄。 一旦用户从datetimepicker中选择日期,年龄就会计算出来,然后立即自动显示在年龄文本框中。 这就是我在控制台应用程序中所做的C# 从datetimepicker计算年龄,并立即在文本框中显示该年龄,c#,C#,我想从datetimepicker计算年龄。 一旦用户从datetimepicker中选择日期,年龄就会计算出来,然后立即自动显示在年龄文本框中。 这就是我在控制台应用程序中所做的 int age = 0; DateTime currentDate = DateTime.Parse( DateTime.Now.Date.ToShortDateString()); Console.WriteLine(currentDate); Console.WriteLine("P
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);
int-age=0;
DateTime currentDate=DateTime.Parse(DateTime.Now.Date.ToShortDateString());
Console.WriteLine(当前日期);
Console.WriteLine(“请输入您的生日”);
DateTime birthdate=DateTime.Parse(Console.ReadLine());
年龄=当前日期.Year-出生日期.Year;
if(currentDate.Month=生日.Month)
&&(currentDate.Day
我可以在winform应用程序中使用相同的逻辑计算年龄。但我不知道在用户从datetimepicker中选择年龄后,如何立即在年龄文本框中自动显示年龄。好的,这相当简单。只需添加eventhandler,监听datepicker的
OnValueChanged
事件。请参阅第页以获取帮助。
只需像这样设置textbox的值
myTextBox.Text=新计算值
只需将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
}
我想你这里有个bug:
else if ((currentDate.Month >= birthdate.Month)
&& (currentDate.Day < birthdate.Day))
{
age--;
}
else if((currentDate.Month>=birthdate.Month)
&&(currentDate.Day
它应该是
(currentDate.Month==birthdate.Month)
我知道现在回答这个问题已经太迟了,但还是简单地在dateTimePicker的ValueChanged事件中使用这个,希望它能对其他人有所帮助
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
int Age = DateTime.Today.Year - dateTimePicker1.Value.Year; // CurrentYear - BirthDate
txtAge.Text = Age.ToString();
}
通过直接保存日期,您可以使您的
currentDate
更加高效DateTime currentDate=DateTime.Now.date代码>。你不需要转换成字符串
,然后再解析回日期时间
。我倾向于发现只写int age=(int)(DateTime.Now.Subtract(birthday.TotalDays/365.25)
,代码更少,更容易阅读。谢谢大家。我非常感谢你们的帮助。我还在学C#。所以我可能会问很多问题,也会问很多问题,所以请在将来也像这样帮助我。