Board logo

标题: 在 VBS 中关于 Now 直接与一个数的加减运算问题?[已解决] [打印本页]

作者: newxso     时间: 2010-1-21 22:54    标题: 在 VBS 中关于 Now 直接与一个数的加减运算问题?[已解决]
在VBS中:

Now+0.00001 加1秒
Now+0.0001 加9秒
Now+0.001 加86秒
Now+0.125 加3小时
Now-0.125 减3小时
Now+1 加1天
Now+2 加2天
Now+3.125 加3天3小时

以上结果是测试得出,但不知其中规律。 例如 0.125 表示 3 小时,是否通过某些进制换算出来呢? 有待这方面的高手解疑。

Last edited by newxso on 2010-1-22 at 19:17 ]

作者: HAT     时间: 2010-1-22 00:33
0.125 * 8 = 1
3 * 8 = 24 小时(1天)

作者: slore     时间: 2010-1-22 02:01
Now+1 加1天

知道这个不是就清楚了麽

作者: newxso     时间: 2010-1-22 19:16
原来VBS能够自动把十进制数转换成24进制数。

0.125 * 24 = 3
3 / 24 = 0.125

由于 1 / 24 = 0.041666666666666666666666666666667 参考 Now+0.00001 表示加1秒,取 1 / 24 = 0.04167 则:

Wsh.Echo Now+0.04167

刚好显示加了1小时。此方法可能不够精确。其实,日期的准确加减法是用 DateAdd :

Wsh.Echo DateAdd("s", 1, Now) 加1秒
Wsh.Echo DateAdd("s", -1, Now) 减1秒
Wsh.Echo DateAdd("n", 2, Now) 加2分钟
Wsh.Echo DateAdd("h", 3, Now) 加3小时
Wsh.Echo DateAdd("d", 1, Now) 加1天
Wsh.Echo DateAdd("m", 1, Now) 加1个月
Wsh.Echo DateAdd("yyyy", 1, Now) 加1年

Last edited by newxso on 2010-1-23 at 22:25 ]