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 ]