以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  狐表中如何求得(卸车时间),请给予帮助  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24327)

--  作者:37947625
--  发布时间:2012/10/10 22:25:00
--  狐表中如何求得(卸车时间),请给予帮助
代码如下:
Select Case e.DataCol.Name
    Case "进厂日期","出厂日期"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("进厂日期") OrElse dr.IsNull("出厂日期") Then
            dr("天差") = Nothing
        Else
            Dim n As Integer = (dr("出厂日期") - dr("进厂日期")).TotalDays
            dr("天差") = n
        End If
End Select
Select Case e.DataCol.Name
    Case "进厂时间","出厂时间"
        If e.DataRow.IsNull(e.DataCol.Name) Then
            e.DataRow("时差") = Nothing
        Else
            Dim t As TimeSpan
            If e.DataRow("出厂时间") > e.DataRow("进厂时间")
                t  = e.DataRow("出厂时间") - e.DataRow("进厂时间")
            Else
                t = e.DataRow("出厂时间").AddHours(24) - e.DataRow("进厂时间")
            End If
            e.DataRow("时差") = t.Hours & "小时" & t.Minutes & "分"
        End If
End Select

图片点击可在新窗口打开查看此主题相关图片如下:未命名.jpg
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:卸车时间统计.xls

我上传了一个狐表的 图片和一个卸车时间的EXCEL数据表。
[此贴子已经被作者于2012-10-10 22:35:43编辑过]

--  作者:37947625
--  发布时间:2012/10/10 22:31:00
--  
注意看1楼 第一行和第二行 是不应该出现天差的。我预期的效果 (出厂日期+出厂时间)-(进厂日期+进厂时间)的 时差  结果为: 小时:分   
图片点击可在新窗口打开查看此主题相关图片如下:未命名1.jpg
图片点击可在新窗口打开查看
请给予帮助!
[此贴子已经被作者于2012-10-10 22:34:17编辑过]

--  作者:lin_hailun
--  发布时间:2012/10/10 22:31:00
--  
 楼主的问题是什么?没看懂。
--  作者:37947625
--  发布时间:2012/10/10 22:33:00
--  
看第2楼照片  求卸车时间 
--  作者:lin_hailun
--  发布时间:2012/10/10 22:43:00
--  
 时间差,把日期和时间合并成一个日期,再计算。

参考:

Dim d1 As Date = "#" & CurrentTable.Current("进厂日期") & " " & CurrentTable.Current("入场时间") & "#"
Dim d2 As Date = "#" & CurrentTable.Current("出厂日期") & " " & CurrentTable.Current("出场时间") & "#"
Messagebox.Show((d2-d1).TotalDays)
--  作者:38585830
--  发布时间:2012/10/10 22:46:00
--  
为什么不把进场日期和时间放在一列中呢?
--  作者:blackzhu
--  发布时间:2012/10/11 7:32:00
--  
王,你这个太纠结了,弄了半天方法都告诉你了,如果这样的话 我说过要么用6楼的方法,只是不行,用5楼的先合并再计算.