【发布时间】:2023-08-18 10:11:01
【问题描述】:
是否可以在 VBScript 中将这种 20:72:84(hh:mm:ss) 持续时间转换为 21:13:24 (hh:mm:ss) 格式?
是的,显然我们可以循环通过它,但我想避免这种Loopy 技术。
代码
根据Siddharth 解决方案 - 我只是修改了代码以适应VBScript platform
Option Explicit
Dim S
S=Convert("23:61:61")
MsgBox(s)
Function Convert(strTime) 'As String
Dim timeArray()
Dim h , m , s
MsgBox("Hi")
'On Error Resume Next
timeArray = Split(strTime, ":")
h = timeArray(0): m = timeArray(1): s = timeArray(2)
REM If err then
REM MsgBox(err)
REM err.clear
REM Exit Function
REM End if
Do Until s < 60
s = s - 60
m = m + 1
Loop
Do Until m < 60
m = m - 60
h = h + 1
Loop
Do Until h < 24
h = h - 24
Loop
Convert = Format(h, "00") & ":" & Format(m, "00") & ":" & Format(s, "00")
'on Error Goto 0
'Exit Function
'Whoa:
'Convert = "Error! CYDD!" '<~~ CYDD : Check Your Data Dude :)
End Function
EDIT1 我在Type mismatch 的行timeArray = Split(strTime, ":") 收到一个错误
谢谢,
【问题讨论】:
-
问题是:你怎么能一开始就得到这样的值呢?
-
@Tukai,您之前的一些问题正好与此有关,这些答案发生了什么?
-
我得到的那些没有正面的 cmets,他们提出的适合非动态的 excel 表。
-
@Tukai:根据你应该
23:61:61或24:61:61转换成什么? -
如果有奖,最疯狂的vbs问题,最不可能的样本数据集,那么你每次都是我的赢家。仅此一项就值得认可,因此根据我更好的判断,我将支持这个问题^_^