整数转换为时间,为什么这个会出错?

microchu 2007-02-05 10:53:34
Dim i, d, x


d = CDate("1900-1-1 00:00:00")

i = DateDiff("s", d, "2007-2-4 22:40:00")
x = DateAdd("s", i, d)
...全文
121 点赞 收藏 5
写回复
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
clear_zero 2007-02-06
i 太大了吧
回复
chuifengde 2007-02-05
有一点很怪,不知是不是小Bug,通过F2查看VB的DateAdd函数声明,I是Double类型,但在MSDN中说是Long型,通过实测,应该是Long型,所以结果有错
回复
chuifengde 2007-02-05
因为dateadd中的i值必须要在long范围之内,而通过datediff算出的值超过这个范围,所以有错
回复
stlyl 2007-02-05
运行一下,是最后一行出错,原因是i值太大超出DateAdd函数的范围,虽然DateDiff可以得出i=3379617600。

有一个解决的方法,就是减少DateAdd中计算的i值,可以先将i/2,再DateAdd两次搞定

.....
d = CDate("1900-1-1 00:00:00")
i = DateDiff("s", d, "2007-2-4 22:40:00")/2
x = DateAdd("s", i, d)
x = DateAdd("s", i, x)
Print x
回复
stlyl 2007-02-05
哪里出错?
哪里有整数?你定义的好像是Variant格式
回复
发动态
发帖子
VB基础类
创建于2007-09-28

7451

社区成员

VB 基础类
申请成为版主
社区公告
暂无公告