如何计算休息时间延长的时间

维托

鉴于开始时间和结束时间。

像 8:30- 10:30 ,所以我可以计算持续时间(分钟) --> 120

情况:每45分钟,会有5分钟的短暂休息时间。

8:30-9:15(第一节)(45分钟累计),9:15-9:20(1个休息时间),9:20-10:05(2节)(90分钟累计),10 :05-10:10 (2 休息时间) .10:10-10:40 (3 session) (提醒时间 30 min =120-90) , 没有第三次休息

我只想输出:8:30 -10:40(开始到结束)和每个休息时间(开始和结束):9:15 到 9:20,10:10-10:40

执行此操作的任何 excel 或 VBA 解决方案?

样本输入可以是: 830-12:34 ,930-1732 , 9:30-23:67

我目前的工作:(总分钟数为 158) 8:30-11:08 首先计算持续时间(以分钟为单位)

在此处输入图片说明

输入 :830 , 11:08

输出:图中红线:新的结束时间,每次休息时间开始,每次休息时间结束

变异

好的。下面的代码在过程中每次都进行计算。要测试它,请拿一张空白工作表,在 B2 中输入开始时间,在 C2 中输入结束时间,然后运行代码。在标准代码模块中安装代码。标准代码模块的默认名称为Module1. 它不是新工作簿中可用的模块。你将不得不添加它。(在 VBE 屏幕左侧的 Project Explorer 窗口中右键单击 VBA 项目,然后选择InsertModule。)

Option Explicit

Enum Nws                                ' worksheet navigation
    ' 15 Jan 2018
    NwsFirstResultRow = 4
    NwsCaption = 1                      ' 1 = column A
    NwsStart                            ' each period's start time
    NwsEnd                              ' 3 = C
End Enum

Sub CalculateRestTimes()
    ' 15 Jan 2018

    Const StartTime As String = "B2"    ' change as required
    Const EndTime As String = "C2"      ' change as required
    Const BreakTime As Long = 5
    Const WorkPeriod As Long = 45

    Dim Tstart As Double, Tend As Double
    Dim Twork As Double, Tbreak As Double
    Dim Rng As Range
    Dim R As Long
    Dim p As Integer

    Twork = Round(WorkPeriod / 1440, 6)
    Tbreak = Round(BreakTime / 1440, 6)
    Application.ScreenUpdating = False
    With Worksheets("RestTimes")        ' change as required
        Tstart = Round(Val(.Range(StartTime).Value2), 6)
        Tend = Round(Val(.Range(EndTime).Value2), 6)
        If Tstart = 0 Or Tend = 0 Then
            MsgBox "Start or end time is not entered correctly.", _
                   vbCritical, "Invalid or missing entry"
        End If

        R = Application.Max(.Cells(.Rows.Count, NwsCaption).End(xlUp).Row, NwsFirstResultRow)
        Set Rng = Range(.Cells(NwsFirstResultRow, NwsCaption), .Cells(R, NwsEnd))
        Rng.ClearContents
        R = NwsFirstResultRow - 1

        Do While Tstart < Tend
            R = R + 1
            p = p + 1
            .Cells(R, NwsCaption).Value = Ordinal(p) & " period"
            .Cells(R, NwsStart).Value2 = Tstart
            Tstart = Application.Min((Tstart + Twork), Tend)
            .Cells(R, NwsEnd).Value2 = Tstart
            If (Tstart + (20 / 1440)) <= Tend Then
                R = R + 1
                .Cells(R, NwsCaption).Value = Ordinal(p) & " rest"
                .Cells(R, NwsStart).Value2 = Tstart
                Tend = Tend + Tbreak
                Tstart = Tstart + Tbreak
                .Cells(R, NwsEnd).Value2 = Tstart
            Else
                .Cells(R, NwsEnd).Value2 = Tend
                Exit Do
            End If
        Loop

        Set Rng = Range(.Cells(NwsFirstResultRow, NwsStart), .Cells(R, NwsEnd))
        Rng.NumberFormat = "HH:mm"
    End With
    Application.ScreenUpdating = True
End Sub

Private Function Ordinal(ByVal n As Integer) As String
    ' 13 Jan 2018

    Dim Suff As Variant
    Dim i As Integer

    Suff = Array("th", "st", "nd", "rd")
    i = n Mod 10
    Ordinal = CStr(n) & Suff(IIf(i > 3, 0, i))
End Function

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何分组时间段并检查休息时间

来自分类Dev

仅标签选定的休息时间

来自分类Dev

JFugue中的自定义注释/休息时间

来自分类Dev

如何在存储过程中的选择中将记录作为休息时间插入

来自分类Dev

jQuery解包增加了休息时间

来自分类Dev

基于代码覆盖范围的团队城市休息时间构建

来自分类Dev

在Optaplanner中为午餐休息时间和额外的仓库退货建模

来自分类Dev

在R中创建8个以上的节律休息时间吗?

来自分类Dev

如何延长屏幕保护程序的调光时间

来自分类Dev

有没有一种方法可以计算first_check_in和last_check_out之间的总休息时间?

来自分类Dev

根据Google表格中的时间表数据计算员工的工作时间和休息时间

来自分类Dev

剧情:如何改变休息时间?

来自分类Dev

解释工作时间和休息时间的日期时间

来自分类Dev

根据WooCommerce结帐中的打开,关闭和休息时间添加具有时间间隔的选择字段

来自分类Dev

如何为每个资源设置随机休息时间?

来自分类Dev

如何延长屏幕保护程序的调光时间

来自分类Dev

调整休息时间的时间间隔?

来自分类Dev

如何仅使用MySQL查询获取员工的休息时间

来自分类Dev

为什么我的休息时间不起作用

来自分类Dev

如何延长用户的Cookie过期时间

来自分类Dev

X轴主要和次要刻度日期标签和休息时间(示例)

来自分类Dev

JFugue中的自定义注释/休息时间

来自分类Dev

如何编写查询以显示日期范围内的“休息时间”?

来自分类Dev

SQL Server:工作人员轮班,不包括休息时间

来自分类Dev

libstdc ++ 6:休息时间:libboost-date-time1.54.0

来自分类Dev

改变ggplot中scale_x_date的休息时间?

来自分类Dev

如何延长脚本执行时间?

来自分类Dev

强制尺寸美学缩放到给定的休息时间

来自分类Dev

如何编写工作休息时间的选择查询

Related 相关文章

  1. 1

    如何分组时间段并检查休息时间

  2. 2

    仅标签选定的休息时间

  3. 3

    JFugue中的自定义注释/休息时间

  4. 4

    如何在存储过程中的选择中将记录作为休息时间插入

  5. 5

    jQuery解包增加了休息时间

  6. 6

    基于代码覆盖范围的团队城市休息时间构建

  7. 7

    在Optaplanner中为午餐休息时间和额外的仓库退货建模

  8. 8

    在R中创建8个以上的节律休息时间吗?

  9. 9

    如何延长屏幕保护程序的调光时间

  10. 10

    有没有一种方法可以计算first_check_in和last_check_out之间的总休息时间?

  11. 11

    根据Google表格中的时间表数据计算员工的工作时间和休息时间

  12. 12

    剧情:如何改变休息时间?

  13. 13

    解释工作时间和休息时间的日期时间

  14. 14

    根据WooCommerce结帐中的打开,关闭和休息时间添加具有时间间隔的选择字段

  15. 15

    如何为每个资源设置随机休息时间?

  16. 16

    如何延长屏幕保护程序的调光时间

  17. 17

    调整休息时间的时间间隔?

  18. 18

    如何仅使用MySQL查询获取员工的休息时间

  19. 19

    为什么我的休息时间不起作用

  20. 20

    如何延长用户的Cookie过期时间

  21. 21

    X轴主要和次要刻度日期标签和休息时间(示例)

  22. 22

    JFugue中的自定义注释/休息时间

  23. 23

    如何编写查询以显示日期范围内的“休息时间”?

  24. 24

    SQL Server:工作人员轮班,不包括休息时间

  25. 25

    libstdc ++ 6:休息时间:libboost-date-time1.54.0

  26. 26

    改变ggplot中scale_x_date的休息时间?

  27. 27

    如何延长脚本执行时间?

  28. 28

    强制尺寸美学缩放到给定的休息时间

  29. 29

    如何编写工作休息时间的选择查询

热门标签

归档