时间持续时间

时间:2012-01-03 23:13:05

标签: vb.net visual-studio visual-studio-2010

这可能是一个更容易的问题,然后我正在制作它,但试图找出时间格式是绝对杀了我。

当我按下按钮时,我使用以下方式收集开始时间:

    StartTime = DateTime.Now.ToString("hh.mm.ss.tt")

然后,当计算完成后,我有:

    EndTime = DateTime.Now.ToString("hh.mm.ss.tt")

我想做的是:

    TotalTime = EndTime - StartTime  

但要使用格式打印时间; “?#Hours,## Minutes,& ## Seconds”

听起来太简单了......


我的编辑*

        timenow = DateTime.Now
        start = DateTime.Now

        Dim totaltime As TimeSpan = (timenow - start)
        xlWorkSheet201.Cells(3, 9) = "Total Test Time: " & Format(totaltime.Hours, "#0") & " Hours, " & Format(totaltime.Minutes, "#0") & "Minutes, & " & Format(totaltime.Seconds, "00") & "Seconds."

4 个答案:

答案 0 :(得分:7)

我可能不会在StartTime和EndTime变量上使用ToString()函数,因为它会将它们变成字符串。

试试这个:

Dim StartTime as DateTime = DateTime.Now

'' Do Stuff

Dim EndTime As DateTime = DateTime.Now

Dim TotalTime As TimeSpan = EndTime - StartTime

Me.Text = TotalTime.ToString("hh':'mm':'ss")

当然,您可以跳过TotalTime变量并只计算它:

Me.Text = (EndTime - StartTime).ToString("hh':'mm':'ss")

答案 1 :(得分:1)

如果要计算持续时间,则不得使用字符串类型。直接使用DateTime变量(即DateTime.Now)。在减去时应该得到一个TimeSpan对象。

答案 2 :(得分:1)

Dim TotalTime As TimeSpan = EndTime - StartTime
Console.WriteLine( _
    "{0:#0} Hours, {1:00} Minutes, & {2:00} Seconds", _
    Math.Truncate(TotalTime.TotalHours), _
    TotalTime.Minutes, _
    TotalTime.Seconds _
)

答案 3 :(得分:0)

OP解决方案。

LarsTech的答案使我开始思考更好的解决方案。我完全忘记了我有datetime.now.tostring。我最后要去的是:

timenow = DateTime.Now
start = DateTime.Now

Dim totaltime As TimeSpan = (timenow - start)
xlWorkSheet201.Cells(3, 9) = "Total Test Time: " & Format(totaltime.Hours, "#0") & " Hours, " & Format(totaltime.Minutes, "#0") & "Minutes, & " & Format(totaltime.Seconds, "00") & "Seconds."