标题: VBS如何把秒转换成时分秒形式 [打印本页]
作者: newxso 时间: 2008-11-12 11:38 标题: VBS如何把秒转换成时分秒形式
我知道用以下方法可以把时分秒形式转换成秒:
- hms = "23:15:59"
- a = split(hms,":")
- intHour = a(0)
- intMinutes = a(1)
- intSeconds = a(2)
- intTime = (a(0) * 60 * 60) + (a(1) * 60) + a(2)
- Wsh.Echo hms & " = " & intTime & "秒"
复制代码
请问如何把已知的秒数转换成时分秒形式呢?如果秒数够大,转换成“日时分秒”形式又如何?请指点。
作者: everest79 时间: 2008-11-12 15:05
vbs中有一大堆日期函数,用不着split去分割
Date 函数 | Day 函数 | Hour 函数 | Minute 函数 | Month 函数 | Second 函数 | Time 函数 | Weekday 函数 | Year 函数
以上函数会将一个标准的now返回时间数据按年月日时分秒提取出来
作者: newxso 时间: 2008-11-12 15:59
假如时间是从一个文本中提取出来的又如何?而且我不是想取得即时时间。
经过试验,用以下方法实现把秒数转换成时分秒形式:
- se = 83759
- h = Int(se / 3600)
- m = Int((se Mod 3600) / 60)
- s = (se Mod 3600) Mod 60
- if m=0 then m="00"
- if m=1 then m="01"
- if m=2 then m="02"
- if m=3 then m="03"
- if m=4 then m="04"
- if m=5 then m="05"
- if m=6 then m="06"
- if m=7 then m="07"
- if m=8 then m="08"
- if m=9 then m="09"
- if s=0 then s="00"
- if s=1 then s="01"
- if s=2 then s="02"
- if s=3 then s="03"
- if s=4 then s="04"
- if s=5 then s="05"
- if s=6 then s="06"
- if s=7 then s="07"
- if s=8 then s="08"
- if s=9 then s="09"
- Wsh.Echo h & ":" & m & ":" & s
复制代码
但以上方法不知是否正规。或者有没有更好的方法呢?
[ 本帖最后由 newxso 于 2008-11-13 08:54 编辑 ]
作者: rat 时间: 2008-11-13 19:47
是正规的吧。
其实这个问题类似于取一个十进制数的百位数、十位数和个位数,是“六十进制”。
作者: slore 时间: 2008-11-14 11:53
se = 83759
h = se \ 3600
tse = se Mod 3600
m = Right("00" & (tse \ 60),2)
s = Right("00" & (tse Mod 60),2)
WSH.Echo h & ":" & m & ":" & s
作者: newxso 时间: 2008-11-14 16:01
slore兄巧秒地用截取右边2个字符方式来简化 if ... then ... 使整个句子简化了。其实VBS中是否存在保留两位有效整数的函数呢?就好似 FormatNumber(12.3454,2) 可以保留两位有效小数一样。
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |