Foxtable(狐表)用户栏目专家坐堂 → 时间计算


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

主题:时间计算

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


加好友 发短信
等级:童狐 帖子:248 积分:2230 威望:0 精华:0 注册:2020/6/28 8:43:00
时间计算  发帖心情 Post By:2022/4/19 8:36:00 [只看该作者]

怎么根据开始时间, 计划耗时, 然后减去中间午休和晚休时间(周一至周六 早上8.00-12.00,下午13.30-19.30为上班时间,周日休息 ),得出 计划完成时间? 和实际完成时间后,实际用时?因为我要对比这个任务是否在计划时间内完成。

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


加好友 发短信
等级:超级版主 帖子:106680 积分:542589 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/4/19 9:40:00 [只看该作者]

Dim d1 As Date = #04/09/2022 10:00# '开始时间
Dim hs As Double = 39 '计划耗时
Dim d11 As Date = New Date(d1.year, d1.month, d1.day, 8, 0, 0)
Dim d12 As Date = New Date(d1.year, d1.month, d1.day, 12, 0, 0)
Dim d21 As Date = New Date(d1.year, d1.month, d1.day, 13, 30, 0)
Dim d22 As Date = New Date(d1.year, d1.month, d1.day, 19, 30, 0)
Dim hh As Double
Dim d As Date = d1
If d <= d11 Then
    hh = 10
ElseIf d > d11 And d < d12 Then
    hh = (d12 - d).TotalHours + 6
ElseIf d > d12 And d < d21 Then
    hh = 6
ElseIf d > d21 And d < d22 Then
    hh = (d22 - d).TotalHours
End If
Output.Show("hh=" & hh)
d = d11
Do While hh < hs
    Dim c As Double = hs - hh
    Output.Show("c=" & c)
    If c > 10 Then
        hh += 10
        d = d.adddays(1)
        If d.DayOfWeek = 0 Then d = d.adddays(1)
        Output.Show("hh3=" & hh)
        Output.Show("d=" & d)
    Else
        hh += c
        Output.Show("c < 10")
        d = d.AddHours(c)
        Output.Show("hh4=" & hh)
        Output.Show("d2=" & d)
        Exit Do
    End If
Loop
d = d.adddays(1)
MsgBox("计划完成时间=" & d)


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


加好友 发短信
等级:幼狐 帖子:113 积分:768 威望:0 精华:0 注册:2023/3/19 16:41:00
  发帖心情 Post By:2023/3/27 14:32:00 [只看该作者]

共两列(时间,用时),同一字段(时间),下一行减去上一行求时间差

 回到顶部