VB中select case 语句的用法

我在VB中编写了如下代码PrivateSubCommand1_Click()RandomizeDimTimeAsDateTime=Time+RndPicture1.Pri... 我在VB中编写了如下代码
Private Sub Command1_Click()
Randomize
Dim Time As Date
Time = Time + Rnd
Picture1.Print "今天 " & Time
Select Case Time
Case Is > Now
Picture1.Print "距现在还有" & Format(Now - Time, "HH时MM分SS秒")
Case Else
Picture1.Print "到现在已经过了" & Format(Time - Now, "HH时MM分SS秒")
End Select
End Sub
Private Sub Form_Load()
Label2 = Time
End Sub

我是要产生今天的一个随机时间然后与现在的时间比较,可是我随机出来都是“到现在已经过了多少多少,不会显示距现在还有多少多少,明明应该显示后者的还是显示的前者,我不知道问题出在哪里,求高手解答,
展开
 我来答
tcjj3
2014-04-10 · 超过19用户采纳过TA的回答
知道答主
回答量:53
采纳率:0%
帮助的人:50万
展开全部

不能用“Time”关键字做变量名称。还有“Now”包括了时间和日期,而前面随机生成的时间不包括日期,会导致判断错误。代码可改为:

Private Sub Command1_Click()
Randomize
Dim rTime As Date
rTime = rTime + Rnd
Picture1.Print "今天 " & rTime
Select Case rTime
Case Is > Time
Picture1.Print "距现在还有" & Format(Time - rTime, "HH时MM分SS秒")
Case Else
Picture1.Print "到现在已经过了" & Format(rTime - Time, "HH时MM分SS秒")
End Select
End Sub

Private Sub Form_Load()
Label2 = Time
End Sub

以上代码主要是把之前的“Time”的变量名改成了别的名称,还有后面的“Now”改成了“Time”。。

我们的梦168
2014-04-10 · TA获得超过194个赞
知道小有建树答主
回答量:261
采纳率:0%
帮助的人:169万
展开全部
换用if...then....else....endif试试嘛.
另,你的 Rnd 只是0.几而已。而刚定义的Time是2000年之前的日期吧?
也就是Time+ Rnd是以前的时间。
如果在Time = Time + Rnd前加一条语句:Time=now()可能会是以后的。
或者把Time = Time + Rnd改为Time = Time + Rnd*100
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
pivotstar
2014-04-10 · TA获得超过471个赞
知道小有建树答主
回答量:444
采纳率:33%
帮助的人:501万
展开全部

这道题还没看完先写2个明显的问题

  1. Time你虽然定义为Command1过程的变量,但是对系统时间还是有危险性。Time语句是直接设置系统时间的函数。

  2. Format的格式,切记,【分是nn 不是mm】【yyyy是年 mm是月 dd是日】

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式