以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  两个日期之间怎样计算差值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=178533)

--  作者:czkingwe66
--  发布时间:2022/7/8 16:13:00
--  两个日期之间怎样计算差值
大家好!
         初学foxtable现遇到一个问题,两列日期怎样计算之间的差值?
        如下图:
        图片点击可在新窗口打开查看
         
        在此谢谢啦!

--  作者:有点蓝
--  发布时间:2022/7/8 16:32:00
--  
比如:http://www.foxtable.com/webhelp/topics/1452.htm


--  作者:czkingwe66
--  发布时间:2022/7/8 16:35: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
            tp = dr("生产结束时间") - dr("生产开始时间")
            dr("生产使用时间") = tp.TotalSeconds() \'真正的时段型数据要转换为秒数,才能存入时段列
        End 
If

End
 Select
  不知道是那是写错了

--  作者:有点蓝
--  发布时间:2022/7/8 16:37:00
--  
已有数据重置一下列:http://www.foxtable.com/webhelp/topics/1469.htm
--  作者:czkingwe66
--  发布时间:2022/7/8 16:52:00
--  
谢谢@有点蓝老师,
刚刚我重新设置后可以显示了,我现又遇到一个问题,上班时间段,上午8:30-12:00,下午13:-17:30,因为我们中午要休息一个小时,我们上午时间段的话不用减一个小时,从上午到下午的时间段就要减一个小时,这个代码不知怎么写?


--  作者:有点蓝
--  发布时间:2022/7/8 16:58:00
--  
参考:http://www.foxtable.com/webhelp/topics/1337.htm

获取小时部分进行判断,如果开始时间小时数小于12,同时结束时间小时数大于13,就减去1个小时

或者分开2次计算。如果开始时间小于12点,就使用12点的时间减去开始时间;同理下午就使用结束时间减去13点。然后2个计算结果相加

--  作者:czkingwe66
--  发布时间:2022/7/8 17:06:00
--  
老师,我能理解你说的意思,但具体的代码我不怎么会写,你指点一下吗?
--  作者:有点蓝
--  发布时间:2022/7/8 17:29:00
--  
dim d1 as date = cdate("2022-7-8 10:00")
dim d2 as date = cdate("2022-7-8 15:00")

Dim tp As TimeSpand2 - d1
dim h as double = tp.TotalSeconds()
if d1.hour < 12 andalso d2.hour > 13 then
h = h - 3600
endif
msgbox(h)

--  作者:czkingwe66
--  发布时间:2022/7/8 19:29:00
--  
谢谢老师