以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]时间差计算  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117843)

--  作者:q2520
--  发布时间:2018/4/19 19:31:00
--  [求助]时间差计算
Select Case e.DataCol.name
    Case "入井时间","升井时间"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("入井时间") Or dr.IsNull("升井时间") Then
            dr("计时") = Nothing
        Else
            Dim tp As TimeSpan
            If dr("升井时间") > dr("入井时间")
                tp = dr("升井时间") - dr("入井时间")
            Else
                tp = cdate(dr("升井时间")).adddays(1) - cdate(dr("入井时间"))
                dr("计时") = tp.TotalSeconds()   \'真正的时段型数据要转换为秒数,才能存入时段列
            End If
        End If
End Select


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

第一行计算不对哪里错了

[此贴子已经被作者于2018/4/19 19:31:16编辑过]

--  作者:xvkewen
--  发布时间:2018/4/19 19:42:00
--  
把案例发上来看一下~
--  作者:有点甜
--  发布时间:2018/4/19 19:43:00
--  
Select Case e.DataCol.name
    Case "入井时间","升井时间"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("入井时间") Or dr.IsNull("升井时间") Then
            dr("计时") = Nothing
        Else
            Dim tp As TimeSpan
            If dr("升井时间") > dr("入井时间")
                tp = dr("升井时间") - dr("入井时间")
                dr("计时") = tp.TotalSeconds()  
            Else
                tp = cdate(dr("升井时间")).adddays(1) - cdate(dr("入井时间"))
                dr("计时") = tp.TotalSeconds()   \'真正的时段型数据要转换为秒数,才能存入时段列
            End If
        End If
End Select

--  作者:q2520
--  发布时间:2018/4/19 19:53:00
--  


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

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

生成Excel表以后   计时列  怎么样可以和在软件里一样(单元格格式我都调了   不行)  显示  几小时分


--  作者:有点甜
--  发布时间:2018/4/19 19:55:00
--  

模板那里这样写

 

<[计时] \\ 3600 & ":" & ([计时] mod 3600) \\ 60 & ":" & ([计时] mod 60)>


--  作者:q2520
--  发布时间:2018/4/19 20:03:00
--  

<[计时] \\ 3600 & "时" & ([计时] mod 3600) \\ 60 & "分" & ([计时] mod 60)>

 

 

我改成这样   但是最后面  多了一个 0

[此贴子已经被作者于2018/4/19 20:12:25编辑过]

--  作者:有点甜
--  发布时间:2018/4/19 20:14:00
--  

改成

 

<[计时] \\ 3600 & "时" & ([计时] mod 3600) \\ 60 & "分">