两个年龄段21和25 wpf之间的日期选择器

时间:2016-07-28 12:13:44

标签: c# asp.net wpf datepicker

我已经创建了一个应用程序,用户使用FIRAuth.auth()?.currentUser.linkWithCredential(credential) { (user, error) in // ... } 选择出生日期。用户必须超过21岁且不满26岁。如果用户超过21岁且未满26岁,则会出现一个消息框,提示"成功"。但是,当我选择出生日期在21到25之间时,没有任何事情发生。不知道我在这里做错了什么,但我认为在"If the call to linkWithCredential:completion: succeeds, the user's new account can access the anonymous account's Firebase data."

中我选择的约会时间为21和26

我的代码就像休耕一样

XAML

DatePicker

xaml.cs

datePicker

1 个答案:

答案 0 :(得分:2)

您选错了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
}