【问题标题】:Datepicker between two ages 21 and 25 wpf两个年龄 21 和 25 wpf 之间的日期选择器
【发布时间】:2016-12-02 19:50: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");
            }

【问题讨论】:

  • 当你追踪它时会发生什么?
  • 我不知道 wpf 但在任何平台上 datepickers 都是你想要的插件
  • 如果我选择 D.O.B 作为 30/05/1994 例如 dateMinimum 显示 30/05/1973 而dateMaximum 显示 30/05/1968

标签: c# asp.net wpf datepicker


【解决方案1】:

您选择了错误的DatePicker 进行比较:

DateTime birthDate = Convert.ToDateTime(dp.SelectedDate);

应该是

DateTime birthDate = Convert.ToDateTime(dpkDOB.SelectedDate);

根据 cmets:

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
}

【讨论】:

  • 我在其中添加了那段代码,但它似乎仍然不起作用。
  • 您的目标是根据当天定义一个年龄范围,对吧?
  • 是的,用户需要从今天起年满 21 周岁且小于 26 周岁。我也尝试过使用这个dateMinimum = DateTime.Now.AddYears(-21);,但在“现在”上出现错误
  • 我已经缩短了一点。
  • 这就像一个魅力。感谢您的时间和帮助:)
猜你喜欢
  • 2016-07-30
  • 2014-01-31
  • 1970-01-01
  • 2012-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多