如何在我的情况下自定义舍入功能?
How to make custom rounding function in my situation?
我有一个 table,它有 4 个时间字段 Time1
到 Time4
,在那之后,我有另一个字段通过减去 Time4 - Time1 = Real Hours
来计算总小时数。
计算完之后,我想对每个数字进行 30 分钟四舍五入,例如:
2:30
应该保持原样。
1:14
我想四舍五入到 30 表示 1:30
.
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=]绝对值.
我有一个 table,它有 4 个时间字段 Time1
到 Time4
,在那之后,我有另一个字段通过减去 Time4 - Time1 = Real Hours
来计算总小时数。
计算完之后,我想对每个数字进行 30 分钟四舍五入,例如:
2:30
应该保持原样。1:14
我想四舍五入到 30 表示1:30
.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=]绝对值.