以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  工时计算问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=176922)

--  作者:lgz518
--  发布时间:2022/5/2 16:46:00
--  工时计算问题
需求:加班工时=卡一+卡二都以超过15分钟(-00:15或00:15),以15分钟为单位或说每15分钟计算,



If e.DataCol.Name = "卡一" Then \'如果
\':
    If e.NewValue Is Nothing Then
        e.DataRow("加班工时") = Nothing
\'       
    ElseIf e.NewValue > 00:15 Then 
        e.DataRow("加班工时") = 00:15 / 60 
             
    ElseIf e.NewValue > -00:15 Then
        e.DataRow("加班工时") = 00:15 / 60 
       
    Else
        e.DataRow("加班工时") = 0
    End If
End If

If e.DataCol.Name = "卡二" Then \'如果
\':
    If e.NewValue Is Nothing Then
        e.DataRow("加班工时") = Nothing
\'       
    ElseIf e.NewValue > 00:15 Then 
        e.DataRow("加班工时") = 00:15 / 60 
             
    ElseIf e.NewValue > -00:15 Then
        e.DataRow("加班工时") = 00:15 / 60 
       
    Else
        e.DataRow("加班工时") = 0
    End If
End If

e.DataRow("加班工时") = "卡一" + "卡二"

请老师,帮助纠正,谢谢

--  作者:有点蓝
--  发布时间:2022/5/4 20:14:00
--  
加班工时是什么类型的列?存储的是什么数据?
--  作者:lgz518
--  发布时间:2022/5/4 22:48:00
--  
 "卡一" , "卡二",加班工时,都是双精“时段”型,

存储的是什么数据, 大于或超过"卡一" , "卡二"的时间(15分钟),以15分钟单位,进行计算,转为小时为单位,存入”加班工时“列


--  作者:有点蓝
--  发布时间:2022/5/4 23:09:00
--  
时段列存储的是秒数,转换为秒数计算

15分钟=15*60=900秒
ElseIf e.NewValue > 00:15 Then 应该是 ElseIf e.NewValue > 900 Then 

e.DataRow("加班工时") = 00:15 / 60 应该是 e.DataRow("加班工时") = 900 / 60 

--  作者:lgz518
--  发布时间:2022/5/7 12:23:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:时间计算 - 问题.zip


上实例,请老师,帮纠正,完善一下,谢谢
能正确实现“加班工时”,“用时”的计算

--  作者:有点蓝
--  发布时间:2022/5/7 13:52:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:时间计算 - 问题.zip


--  作者:lgz518
--  发布时间:2022/5/7 14:53:00
--  
1,计算“加班工时”

如果,“卡一”≥ - 00:15 or “卡一”≥  00:15,“卡二”≥ - 00:15 or “卡二”≥  00:15

      “加班工时”=“卡一”+“卡二”


具体计算方法:

A.当大于15分钟时(- 00:15或00:15),以15分钟进行计算

   卡一的加班工时 = 15分钟/60=0.25小时
   卡一的加班工时 = 30分钟/60=0.50小时
   卡一的加班工时 = 45分钟/60=0.75小时

   卡二的加班工时 = 15分钟/60=0.25小时
   卡二的加班工时 = 30分钟/60=0.50小时
   卡二的加班工时 = 45分钟/60=0.75小时

“加班工时”=“卡一”+“卡二”
问题一: 如何实现图一,每个大于等于15分钟时行计算


图片点击可在新窗口打开查看此主题相关图片如下:时间计算1.jpg
图片点击可在新窗口打开查看

问题二:如何实现,用时负数为正确数?如下图


图片点击可在新窗口打开查看此主题相关图片如下:时间计算2.jpg
图片点击可在新窗口打开查看






--  作者:有点蓝
--  发布时间:2022/5/7 15:01:00
--  
问题一,完全没看懂,正确的结果是什么,每一行把手工计算过程和结果发上来看看

二,判断计算为负数的,加上24

--  作者:lgz518
--  发布时间:2022/5/7 16:15:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:时间计算 - 问题.zip


--  作者:有点蓝
--  发布时间:2022/5/7 16:35:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:时间计算 - 问题.zip