[英]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.