Получите количество часов между двумя раза в Asp.net - PullRequest
3 голосов
/ 02 апреля 2019

У меня есть 3 текстовых поля в .aspx.
1. txtStartTime
2. txtEndTime
3. txtNumberOfHours

Я хочу автоматически рассчитать количество часов в txtNumberOfHours

Вот мой код:

TestNumOfHour.aspx

<asp:TextBox ID="txtStartTime" runat="server" ontextchanged="txtStartTime_TextChanged" AutoPostBack="true"></asp:TextBox>
<asp:TextBox ID="txtEndTime" runat="server" ontextchanged="txtEndTime_TextChanged" AutoPostBack="true"></asp:TextBox>
<asp:TextBox ID="txtNumberOfHours" runat="server"></asp:TextBox>

NumOfHour.aspx.cs

  protected void txtEndTime_TextChanged(object sender, EventArgs e)
    {
        txtNumberOfHours.Text = calculateTimeDiff(txtStartTime.Text, txtEndTime.Text).ToString();
    }
    protected void txtStartTime_TextChanged(object sender, EventArgs e)
    {
        txtNumberOfHours.Text = calculateTimeDiff(txtStartTime.Text, txtEndTime.Text).ToString();
    }

    private TimeSpan calculateTimeDiff(string t1, string t2)
    {
        TimeSpan ts = TimeSpan.Zero; 
        DateTime tt1, tt2;
        if (DateTime.TryParse(t1, out tt1) && DateTime.TryParse(t2, out tt2))
        {
            ts = tt2.Subtract(tt1);
        }
        return ts;
    }

Я только хочу Часы исключая минуты и секунды, но каким-то образом я получаю этот результат.

Результат в txtNumberOfHours: час: минуты: секунды

Ответы [ 2 ]

1 голос
/ 02 апреля 2019
txtNumberOfHours.Text = (t2 - t1).TotalHours.ToString();

Это утверждение возвращает количество часов.

0 голосов
/ 02 апреля 2019

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

(DateTime.Parse(t2) - DateTime.Parse(t1)).TotalHours
...