这可能是一个更容易的问题,然后我正在制作它,但试图找出时间格式是绝对杀了我。
当我按下按钮时,我使用以下方式收集开始时间:
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."
答案 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."