如何通过前端输入字段日期计算年龄?

How to calculate age by input field date on the frontend?

我有一个模型,其中有一个名为

的字段
public DateTime birthday {get ; set; } = DateTime.Today;
public int age = 0;

我的 Razor 文件

<div class="wrap-input100 validate-input">
     <InputDate class="input100" id="birthday" @bind-value="CurrentCustomerModel.birthday" />
</div>

所以我想做的是一些前端验证。如果这个人不到 50 岁,我想显示一条消息说“对不起,你太年轻了”(或任何其他内容)。

Age 不应该是存储的数据——它是一个基于查询时间的计算值;因此我建议将其设为动态计算的 read-only 属性:

public DateTime Birthday { get; set; } = DateTime.Today;

public int Age
{
    get
    {
        var today = DateTime.Today;
        var age = today.Year - Birthday.Year;
        if (Birthday.Date > today.AddYears(-age)) age--;
        return age;
    }
}

现在您有一个计算字段,它将提供准确的 Age(以年为单位),然后您可以使用它与 50.

进行比较

注意年龄计算来自this answer