从总轨道时间中减去当前轨道时间

时间:2013-01-12 18:10:27

标签: vb.net math datetime

嘿,所有我都有一首歌在播放时间如下:

0:00 / 4:47

第一次是曲目当前时间。 第二个是该歌曲的总播放时间。

我把它分开:

Dim tmpTimes As Array = lblSongTime.Text.Split("/")

所以 tmpTimes(0)给了我0:00而 tmpTimes(1)给了我4:47。

现在我试图从 tmpTimes(0)

中减去 tmpTimes(1)
Debug.Print(CDbl(tmpTimes(1).replace(":", "") - tmpTimes(0).replace(":", "")))

我得到: 447 ... 446 ... 445 ......等等

为了返回降序计数,我需要什么样的计算?

示例: 4:47 ... 4:46 ..... 4:45 ......等使用当前时间 tmpTimes(0)?< / p>

2 个答案:

答案 0 :(得分:2)

您需要将文本MM:SS拆分为分钟和秒,然后将其转换为总秒数(m * 60 + s)。然后你可以在几秒钟内完成数学运算。然后你需要将它转换回Minutes和Seconds进行显示。

您也可以使用Timespan类来执行此操作。

答案 1 :(得分:0)

解决:

Dim times As String() = lblSongTime.Text.Split("/"c)
Dim elapsedTime As TimeSpan = TimeSpan.ParseExact(times(0).Trim(), "m\:ss", Nothing)
Dim totalTime As TimeSpan = TimeSpan.ParseExact(times(1).Trim(), "m\:ss", Nothing)
Dim remainingTime As TimeSpan = totalTime - elapsedTime

Debug.WriteLine(remainingTime.ToString("m\:ss"))