Foxtable(狐表)用户栏目专家坐堂 → 两个日期之间怎样计算差值


  共有5653人关注过本帖树形打印复制链接

主题:两个日期之间怎样计算差值

帅哥哟,离线,有人找我吗?
czkingwe66
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:156 威望:0 精华:0 注册:2022/7/6 11:34:00
两个日期之间怎样计算差值  发帖心情 Post By:2022/7/8 16:13:00 [只看该作者]

大家好!
         初学foxtable现遇到一个问题,两列日期怎样计算之间的差值?
        如下图:
        图片点击可在新窗口打开查看
         
        在此谢谢啦!

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110743 积分:563641 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/8 16:32:00 [只看该作者]


 回到顶部
帅哥哟,离线,有人找我吗?
czkingwe66
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:156 威望:0 精华:0 注册:2022/7/6 11:34:00
  发帖心情 Post By: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
  不知道是那是写错了

 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110743 积分:563641 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/8 16:37:00 [只看该作者]

已有数据重置一下列:http://www.foxtable.com/webhelp/topics/1469.htm

 回到顶部
帅哥哟,离线,有人找我吗?
czkingwe66
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:156 威望:0 精华:0 注册:2022/7/6 11:34:00
  发帖心情 Post By:2022/7/8 16:52:00 [只看该作者]

谢谢@有点蓝老师,
刚刚我重新设置后可以显示了,我现又遇到一个问题,上班时间段,上午8:30-12:00,下午13:-17:30,因为我们中午要休息一个小时,我们上午时间段的话不用减一个小时,从上午到下午的时间段就要减一个小时,这个代码不知怎么写?


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110743 积分:563641 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/7/8 16:58:00 [只看该作者]

参考:http://www.foxtable.com/webhelp/topics/1337.htm

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

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

 回到顶部
帅哥哟,离线,有人找我吗?
czkingwe66
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:156 威望:0 精华:0 注册:2022/7/6 11:34:00
  发帖心情 Post By:2022/7/8 17:06:00 [只看该作者]

老师,我能理解你说的意思,但具体的代码我不怎么会写,你指点一下吗?

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110743 积分:563641 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By: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
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:婴狐 帖子:15 积分:156 威望:0 精华:0 注册:2022/7/6 11:34:00
  发帖心情 Post By:2022/7/8 19:29:00 [只看该作者]

谢谢老师

 回到顶部