如何在我的情况下自定义舍入功能?

How to make custom rounding function in my situation?

我有一个 table,它有 4 个时间字段 Time1Time4,在那之后,我有另一个字段通过减去 Time4 - Time1 = Real Hours 来计算总小时数。

计算完之后,我想对每个数字进行 30 分钟四舍五入,例如:

  1. 2:30 应该保持原样。
  2. 1:14 我想四舍五入到 30 表示 1:30.
  3. 1:41 我想四舍五入到 2 表示 2:00.

分钟低于 30 舍入到 30 除 00,大于 30 舍入到 1 小时除 30。

我怎样才能使这样的事情成为可能?是否有任何内置的 ms-access 函数可以做到这一点?

希望我解释的很好!

我的 Table 和示例

我试过这种方法,但根本不起作用:

感谢您的帮助:)

像这样:

Public Function RoundTimeUp( _
    ByVal datDate As Date) _
    As Date

    Const cintMult As Integer = 48 '30 minute round
    'Const cintMult As Integer = 96 '15 minute round
    'Const cintMult As Integer = 144 '10 minute round
    'Const cintMult As Integer = 288 '5 minute round
  
    RoundTimeUp = CDate(-Int(CDec(-datDate * cintMult)) / cintMult)

End Function

附录

如果时间值的数值可以是负数,值将显示为四舍五入向下。为防止这种情况,请使用 Abs:

EX44Abs: RoundTimeUp(Abs([TimeField]))

Val0341 保持常数:CDbl(#03:41:00#)

ValStAuf 显示数值。

EX44 显示没有 Abs 的舍入时间,EX44Abs 使用 [= 的舍入时间28=]绝对值.