以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]关于0秒显示的问题(已解决)  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=108130)

--  作者:yyzlxc
--  发布时间:2017/10/17 8:40:00
--  [求助]关于0秒显示的问题(已解决)
当结束时间等于开始时间时,用时为空,如何实现用时显示为“00:00:00”(用时列设置为LongTime)。

For Each dr1 As DataRow In DataTables("日志").DataRows
    Dim N,h1,m1,s1 As Integer
    Dim sj As Date
    N = (dr1("结束时间") - dr1("开始时间")).TotalSeconds()
    h1 = N \\ 3600
    m1 = (N Mod 3600) \\ 60
    s1 = N Mod 60
    sj = Format(new Date(1,1,1,h1,m1,s1), "HH:mm:ss")
    dr1("用时") = sj
Next
[此贴子已经被作者于2017/10/17 9:48:49编辑过]

--  作者:有点甜
--  发布时间:2017/10/17 8:57:00
--  

没这么麻烦吧?参考代码

 

Dim d As Date = new Date(1900, 1, 1, 0, 0, 0)
Dim d1 As Date = "2017-10-17 12:00:00"
Dim d2 As Date = "2017-10-17 12:30:30"
Dim sp As TimeSpan = d2-d1
d = d.AddSeconds(sp.TotalSeconds)
msgbox(d)
msgbox(format(d, "HH:mm:ss"))


--  作者:yyzlxc
--  发布时间:2017/10/17 9:15:00
--  
谢谢甜老师的指教,但是当开始时间和结束时间相同的情况下,时差等于零,用时列显示为空,要求显示“00:00:00”的效果,应该如何处理?

For Each dr1 As DataRow In DataTables("日志").DataRows
    Dim d As Date = new Date(1900, 1, 1, 0, 0, 0)
    Dim sp As TimeSpan  = dr1("结束时间") - dr1("开始时间")
    d = d.AddSeconds(sp.TotalSeconds)
    dr1("用时") = format(d, "HH:mm:ss")
Next



图片点击可在新窗口打开查看此主题相关图片如下:捕获4.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2017/10/17 9:18:50编辑过]

--  作者:有点甜
--  发布时间:2017/10/17 9:43:00
--  
For Each dr1 As DataRow In DataTables("日志").DataRows
    Dim d As Date = new Date(1900, 1, 1, 0, 0, 0)
    Dim sp As TimeSpan  = dr1("结束时间") - dr1("开始时间")
    d = d.AddSeconds(sp.TotalSeconds)
    dr1("用时") = d
Next

--  作者:yyzlxc
--  发布时间:2017/10/17 9:49:00
--  
问题解决,谢谢甜老师,再次感谢!!