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

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)
...全文
156 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
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格式

7,785

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧