从 TimeSpan 仅计算小时分钟秒

Calculate only hours minutes seconds from TimeSpan

我有一个这种格式的 7 字符串 00:00:00
我正在尝试使用时间跨度来计算这些字符串
问题是它用天数计算

        Dim l1 As String = "14:32:45"
        Dim l2 As String = "07:43:13"
        Dim l3 As String = "00:00:00"
        Dim l4 As String = "00:00:00"
        Dim l5 As String = "18:34:54"
        Dim l6 As String = "00:00:00"
        Dim l7 As String = "12:00:34"
        Dim ts1 As TimeSpan = TimeSpan.Parse(l1)
        Dim ts2 As TimeSpan = TimeSpan.Parse(l2)
        Dim ts3 As TimeSpan = TimeSpan.Parse(l3)
        Dim ts4 As TimeSpan = TimeSpan.Parse(l4)
        Dim ts5 As TimeSpan = TimeSpan.Parse(l5)
        Dim ts6 As TimeSpan = TimeSpan.Parse(l6)
        Dim ts7 As TimeSpan = TimeSpan.Parse(l7)
        Dim ttsum As New TimeSpan
        ttsum = ts1 + ts2 + ts3 + ts4 + ts5 + ts6 + ts7
         MsgBox(ttsum.ToString)

输出:2.04:51:26

期望的输出:52:51:26

这就是 TimeSpan 的工作方式。如果您不想要 TimeSpan.ToString 的输出,则不要使用它。您可以自己计算小时数并使用它:

MessageBox.Show($"{Convert.ToInt32(ttsum.TotalHours)}:{ttsum.Minutes:00}:{ttsum.Seconds:00}")