возраст должен быть рассчитан на основе даты рождения в asp. net? - PullRequest
0 голосов
/ 25 апреля 2020

Я новичок в asp. net

Я хочу, чтобы пользователь выбирал дату рождения, затем автоматически вычислял их возраст и заполнял текстовое поле возраста, и я выполнял одну логи c, но где-то Мой логин c неверен?

код:

default.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>

default.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)
        {

        }

когда я выбираю дату рождения из календаря (12.01.2017), в окне просмотра затем укажите 3 года, но я хочу отобразить 2 года 4 месяца 24 дня

окно просмотра:

enter image description here

где мне нужно поменять логи c?

Ответы [ 2 ]

1 голос
/ 25 апреля 2020
    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";
1 голос
/ 25 апреля 2020

Попробуйте это:

var age = DateTime.Now - birthdate;

Вместо:

int age = DateTime.Now.Year - birthdate.Year;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...