以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  分钟计算  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=190007)

--  作者:yifan3429
--  发布时间:2024/1/10 16:14:00
--  分钟计算
图片点击可在新窗口打开查看
Select Case e.DataCol.name
    Case "时间_开始", "时间_时长"
        Dim dr As DataRow = e.DataRow
        If dr.IsNull("时间_开始") Or dr.IsNull("时间_时长") Then
           dr("时间_结束") = Nothing
        Else
            Dim dt As Date = dr("时间_开始")
            dr("时间_结束") = dt.AddSeconds(dr("时间_时长")) \'注意时段型列是以秒为单位参与计算的
        End If
End Select

Dim dwr As DataRow
Dim drs As List(Of DataRow)
dwr = e.DataTable.Find("[_SortKey] < " & e.DataRow("_SortKey"), "[_SortKey] Desc") \'找出上一行
If dwr Is Nothing Then \'如果没有找到上一行,说明本行就是第一行   
    dwr = e.DataRow
End If
drs = e.DataTable.Select("[_SortKey] >= " & dwr("_SortKey"), "[_SortKey]")
For i As Integer = 1 To drs.Count - 1 \'重算余下行的余额
    drs(i)("时间_开始") = drs(i - 1)("时间_结束")
Next


目前都是小时,希望是分钟计算 例如30分钟 45分种
[此贴子已经被作者于2024/1/10 16:13:59编辑过]

--  作者:有点蓝
--  发布时间:2024/1/10 17:07:00
--  
代码不就已经注释了是按秒计算的吗,30分钟填入30*60=1800秒不就行了
--  作者:yifan3429
--  发布时间:2024/1/10 17:14:00
--  
关键是 我目前的时长不支持输入分钟 0.5就会无效
1 就会是一个小时 
30 就会是30小时

--  作者:有点蓝
--  发布时间:2024/1/10 17:17:00
--  
时段列要输入【0:30】表示30分钟