繁体   English   中英

如何累计小时

[英]How to get the hour as a total

我有一个问题。 如何获得总时数? 正在显示的输出不是我一直期望的总和。 这是SS,以便你们获得照片。

在此处输入图片说明

我只需要总小时数。 谢谢。

这是获取总工作时间的代码。

    Dim d1 As DateTime
    Dim d2 As DateTime
    Dim ts1 As TimeSpan
    Dim ts2 As TimeSpan
    Dim ts3 As TimeSpan
    Dim ts4 As TimeSpan
    Dim ts5 As TimeSpan
    Dim ts6 As TimeSpan
    Dim tsFinal As TimeSpan

    d1 = DateTime.Parse(txtTimeIn1.Text)
    d2 = DateTime.Parse(txtTimeOut1.Text)
    ts1 = d2 - d1
    txtTotalHr1.Text = (ts1.ToString)

    d1 = DateTime.Parse(txtTimeIn2.Text)
    d2 = DateTime.Parse(txtTimeOut2.Text)
    ts2 = d2 - d1
    txtTotalHr2.Text = (ts2.ToString)

    d1 = DateTime.Parse(txtTimeIn3.Text)
    d2 = DateTime.Parse(txtTimeOut3.Text)
    ts3 = d2 - d1
    txtTotalHr3.Text = (ts3.ToString)

    d1 = DateTime.Parse(txtTimeIn4.Text)
    d2 = DateTime.Parse(txtTimeOut4.Text)
    ts4 = d2 - d1
    txtTotalHr4.Text = (ts4.ToString)

    d1 = DateTime.Parse(txtTimeIn5.Text)
    d2 = DateTime.Parse(txtTimeOut5.Text)
    ts5 = d2 - d1
    txtTotalHr5.Text = (ts5.ToString)

    d1 = DateTime.Parse(txtTimeIn6.Text)
    d2 = DateTime.Parse(txtTimeOut6.Text)
    ts6 = d2 - d1
    txtTotalHr6.Text = (ts6.ToString)

    tsFinal = ts1 + ts2 + ts3 + ts4 + ts5 + ts6
    txtTotalWorkHour.Text = tsFinal.ToString

尝试这个

Function GetTotalTime() As TimeSpan
        Dim count As TimeSpan = TimeSpan.Zero
        For Each x As DataGridViewRow In Table.Rows
            count += TimeSpan.Parse(x.Cells(columnIndex).Value)

        Next
        Return count
End Function


'elsewhere
Dim hrs As Integer = GetTotalTime().Hours

您有格式问题。 默认的TimeSpan ToString格式为d.hh:mm:ss,其中d为天。 所以2:11:03:00表示2天11小时3分钟。 我假设您想要59:03:00,这意味着59个小时(24 * 2 + 11)和3分钟。 为此,请使用以下格式:

txtTotalWorkHour.Text = String.Format("{0:n0}:{1:d2}:{2:d2}", tsFinal.TotalHours, tsFinal.Minutes, tsFinal.Seconds)

暂无
暂无

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

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