以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请教出勤时数近似求整计算 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138043) |
-- 作者:wakai -- 发布时间: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点计算,请教老师要怎么写代码 |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2019/7/22 23:03:00 -- 蓝老师,上午上班那个时段可以, 下午下班那个不行呢,大于或小于17点的,显示的都是实际时间,不是17:00,是因为24小时制原因吗
|
-- 作者:wakai -- 发布时间:2019/7/22 23:21:00 -- 可以了,改为24小时HH |