我有一个表有四个时间字段Time1
到Time4
,之后,我有另一个字段,通过减去Time4 - Time1 = Real Hours
计算总小时数。
在计算之后,我想要将每个数字舍入30分钟,例如:
2:30
应保持原样。1:14
我想把这个高达30意味着1:30
。1:41
我想把这个最多2个意味着2:00
。除了00以外,30分钟到30分钟以及30分钟以外的30分钟到1小时。
我怎样才能做出这样的事情呢?是否有内置的ms访问功能可以做到这一点?
我希望我解释得很好!
我的表格和例子
我试过这种方式,但根本没有工作:
谢谢你的帮助 :)
像这样:
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显示使用Abs的舍入时间。