繁体   English   中英

年龄应该根据asp.net中的出生日期计算?

[英]age should be calculated based on date of birth in asp.net?

我是 asp.net 的新手

我想当用户 select 出生日期然后自动计算他们的年龄并填写年龄文本框并且我执行一个逻辑但是在某个地方我的逻辑是错误的?

代码:

默认.aspx

<form>
            <label for="date"><b>Date Of Birth:</b></label>
            <asp:Calendar  ID="txtdate" placeholder="Select Your Date Of Birth" runat="server" OnSelectionChanged="txtdate_SelectionChanged"></asp:Calendar>


            <label for="age"><b>Age:</b></label>
            <asp:TextBox ID="txtage" runat="server" placeholder="Age"></asp:TextBox>
</form>

默认.aspx.cs

        protected void txtdate_SelectionChanged(object sender, EventArgs e)
        {
            DateTime birthdate=txtdate.SelectedDate.Date;  //select date from calender

            int age = DateTime.Now.Year - birthdate.Year;

            txtage.Text = age.ToString();
        }

        protected void age_TextChanged(object sender, EventArgs e)
        {

        }

当我 select 日历中的出生日期(2017 年 1 月 12 日)在手表 window 然后显示 3 年但我想显示 2 年 4 个月 24 天

观看 window:

在此处输入图像描述

我需要在哪个地方改变我的逻辑?

试试这个:

var age = DateTime.Now - birthdate;

代替:

int age = DateTime.Now.Year - birthdate.Year;
    DateTime Birth = txtdate.SelectedDate.Date;
    DateTime Today = DateTime.Now;


    TimeSpan Span = Today - Birth;


    DateTime Age = DateTime.MinValue + Span;


    // note: MinValue is 1/1/1 so we have to subtract...
    int Years = Age.Year - 1;
    int Months = Age.Month - 1;
    int Days = Age.Day - 1;
    txtage.Text = Years.ToString() + " Years, " + Months.ToString() + " Months, " + Days.ToString() + " Days";

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM