如何防止 LibreOffice Calc 中的时间函数每 24 小时循环一次?
How to prevent Time function in LibreOffice Calc from wrapping around every 24 hrs?
我正在使用 LibreOffice Calc 进行一些计算。为什么这个函数 Time(100,0,0)
returns 4:00
即使单元格格式为 [HH]:MM
?
您不能使用内置的 TIME() 函数执行此操作 - 它可以创建的最大值为 23:59:59。认为这是理所当然的,是一种必然,是一种自然灾害。毕竟,你的闹钟也没有100小时00分的刻度。
要处理超过一天的时间范围,您必须编写自己的自定义函数。类似于此:
Function DateTime(Optional HH As Long, Optional MM As Long, Optional SS As Long) As Double
Rem Return [date-]time value as Double
Rem Params:
Rem No params - current date and time
Rem 1 - hours
Rem 2 - hours-minutes
Rem 3 - days-hours-minutes
If IsMissing(HH) Then
DateTime = Timer()/86400
Else
If IsMissing(SS) Then SS = 0
If IsMissing(MM) Then MM = 0
DateTime = (HH*3600+MM*60+SS)/86400
EndIf
End Function
我正在使用 LibreOffice Calc 进行一些计算。为什么这个函数 Time(100,0,0)
returns 4:00
即使单元格格式为 [HH]:MM
?
您不能使用内置的 TIME() 函数执行此操作 - 它可以创建的最大值为 23:59:59。认为这是理所当然的,是一种必然,是一种自然灾害。毕竟,你的闹钟也没有100小时00分的刻度。
要处理超过一天的时间范围,您必须编写自己的自定义函数。类似于此:
Function DateTime(Optional HH As Long, Optional MM As Long, Optional SS As Long) As Double
Rem Return [date-]time value as Double
Rem Params:
Rem No params - current date and time
Rem 1 - hours
Rem 2 - hours-minutes
Rem 3 - days-hours-minutes
If IsMissing(HH) Then
DateTime = Timer()/86400
Else
If IsMissing(SS) Then SS = 0
If IsMissing(MM) Then MM = 0
DateTime = (HH*3600+MM*60+SS)/86400
EndIf
End Function