gpt4 book ai didi

c# - 两个年龄在 21 和 25 之间的日期选择器 wpf

转载 作者:行者123 更新时间:2023-11-30 23:22:47 25 4
gpt4 key购买 nike

我制作了一个应用程序,用户可以使用 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
}

关于c# - 两个年龄在 21 和 25 之间的日期选择器 wpf,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38636039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com