年龄介于21至25岁之间的日期选择器
本文关键字:之间 日期 选择器 25岁 | 更新日期: 2023-09-27 17:59:07
我制作了一个应用程序,用户可以使用DatePicker
选择出生日期。用户年龄必须在21岁以上26岁以下。如果用户年龄在21岁以上26岁以下,则会出现一个消息框,上面写着"成功"。然而,当我选择一个介于21到25之间的出生日期时,什么都不会发生。不确定我做错了什么,但我认为在我的datePicker
中,我选择的日期减去了21和26
我的代码和一样
xaml
<DatePicker HorizontalAlignment="Center" Name="dpkDOB" Grid.Column="1" VerticalAlignment="Top" Grid.Row="10" />
xaml.cs
DatePicker dp = new DatePicker();
DateTime dateMinimum = dpkDOB.SelectedDate.Value.AddYears(-21);
DateTime dateMaximum = dpkDOB.SelectedDate.Value.AddYears(-26); // 26, as this would include somebody whose just below 26 years old
DateTime birthDate = Convert.ToDateTime(dp.SelectedDate);
if (birthDate > dateMinimum && birthDate < dateMaximum)
{
MessageBox.Show("Success");
}
您选择了错误的DatePicker
进行比较:
DateTime birthDate = Convert.ToDateTime(dp.SelectedDate);
应该是
DateTime birthDate = Convert.ToDateTime(dpkDOB.SelectedDate);
根据评论:
DateTime birthDate = Convert.ToDateTime(dpkDOB.SelectedDate);
if(birthDate > DateTime.Now.AddYears(-26) && birthDate < DateTime.Now.AddYears(-21))
{
// do stuff
}
如果您在解决方案中更频繁地需要此功能,请考虑这样的扩展:
public static class Extensions
{
public static TimeSpan Age(this DateTime dt)
{
return (DateTime.Now - dt);
}
public static int Years(this TimeSpan ts)
{
return (int)((double)ts.Days / 365.2425);
}
}
用法:
DateTime birthDate = Convert.ToDateTime(dpkDOB.SelectedDate);
if (birthDate.Age().Years() > 21 && birthDate.Age().Years() < 26)
{
// do stuff
}