Foxtable(狐表)用户栏目专家坐堂 → 请教出勤时数近似求整计算


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

主题:请教出勤时数近似求整计算

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


加好友 发短信
等级:小狐 帖子:366 积分:3558 威望:0 精华:0 注册:2016/5/25 21:31:00
请教出勤时数近似求整计算  发帖心情 Post By:2019/7/22 0:27:00 [只看该作者]

 按帮助里的时段计算,代码如下
Case "上午上班","下午下班"
        If dr.IsNull("上午上班") Or dr.IsNull("下午下班") Then
            dr("出勤时数") = Nothing
        Else
            Dim tp As TimeSpan
            tp = dr("下午下班") - dr("上午上班")
            dr("出勤时数") = tp.TotalHours() '真正的时段型数据要转换为秒数,才能存入时段列
        End If
会出现多余的分钟数导致有小数不一

要实现如上班上班<=8:00,按8:00
下午下班>=17:00按17:00点计算,请教老师要怎么写代码

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


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

Case "上午上班","下午下班"
        If dr.IsNull("上午上班") Or dr.IsNull("下午下班") Then
            dr("出勤时数") = Nothing
        Else
            Dim tp As TimeSpan
dim d1 as date = dr("上午上班")
if format(d1,"HH:mm") < "08:00" then d1 = cdate(format(d1,"yyyy-MM-dd 08:00"))
dim d2 as date = dr("下午下班"")
if format(d2,"HH:mm") > "17:00" then d2 = cdate(format(d2,"yyyy-MM-dd 17:00"))
            tp = d2 - d1
            dr("出勤时数") = tp.TotalHours() '真正的时段型数据要转换为秒数,才能存入时段列
        End If
[此贴子已经被作者于2019/7/23 9:04:00编辑过]

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


加好友 发短信
等级:小狐 帖子:366 积分:3558 威望:0 精华:0 注册:2016/5/25 21:31:00
  发帖心情 Post By:2019/7/22 23:03:00 [只看该作者]

蓝老师,上午上班那个时段可以,
下午下班那个不行呢,大于或小于17点的,显示的都是实际时间,不是17:00,是因为24小时制原因吗

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


加好友 发短信
等级:小狐 帖子:366 积分:3558 威望:0 精华:0 注册:2016/5/25 21:31:00
  发帖心情 Post By:2019/7/22 23:21:00 [只看该作者]

可以了,改为24小时HH

 回到顶部