永发信息网

有关vb小问题,

答案:4  悬赏:40  手机版
解决时间 2021-08-20 04:35
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-08-20 00:57

  Private Sub Timer1_Timer()

a = a + 1

Label1.Caption = Str(Int(a / 60)) + ":" + Str(a - Int(a / 60) * 60)

End Sub

 

 这一段看不懂,能否帮我解读解读

最佳答案
  • 五星知识达人网友:旧脸谱
  • 2021-08-20 02:34

这是一段多么富有智慧的语句啊,收藏了



a=a+1表示没执行一遍代码就使a的值加1,从而使下边遇到的情况不同

Label1.Caption = Str(Int(a / 60)) + ":" + Str(a - Int(a / 60) * 60)表示把Str(Int(a / 60)) + ":" + Str(a - Int(a / 60) * 60)的值赋给Label1控件以显示



主要是讲一讲Str(Int(a / 60)) + ":" + Str(a - Int(a / 60) * 60):


str()是把括号里的值改为string格式,以便用“+”相连,如果不用str()就要把+改为&,也可以起到同样的效果

int()是吧数值的小数部分去掉,也就是只留整数部分


当a在0~59时,a / 60小于0,Int(a / 60)就是0;当a在60~119时,2=Int(a / 60);当a在120~179时,3=Int(a / 60)……


当a=0时,0=a - Int(a / 60) * 60;当a=1时,1=a - Int(a / 60) * 60;当a=2时,2=a - Int(a / 60) * 60;……

不过如果a>60就不一样了:当a=60时,0=a - Int(a / 60) * 60;当a=61时,1=a - Int(a / 60) * 60;当a=62时,2=a - Int(a / 60) * 60;……


于是,如果在通用添加dim a as Integer,再在form-load里添加a=0,再将Timer1的interval=1000(表示每过一秒运行一次代码),那么程序就是计时器啦,这是一个多么具智慧的代码呀,不错



如果Label1.Caption = Str(Int(a / 3600)) + ":" + Str(Int(a / 60) - Int(Int(a / 60) / 60) * 60) + ":" + Str(a - Int(a / 60) * 60),就能时分秒俱全了

如果Label1.Caption = Str(Int(a / 86400)) + "-" + Str(Int(a / 3600) - Int(Int(a / 3600) / 60) * 60) + ":" + Str(Int(a / 60) - Int(Int(a / 60) / 60) * 60) + ":" + Str(a - Int(a / 60) * 60)
就连日也可以,你可以自己去发现规律,再整个世纪、年代、年、月啥的,锻炼一下思维,我都没想过一个变量居然可以干这么多事情

全部回答
  • 1楼网友:三千妖杀
  • 2021-08-20 05:43
是这样的。我一步一步讲!首先 a=a+1结果是1 然后 Str(Int(a/60))结果是0 然后Str(a-Int(a/60)*60)结果是1 所以最终结果是0:1
  • 2楼网友:人類模型
  • 2021-08-20 04:22

这是一个显示时间的程序,如果Timer控件的时间间隔设为1000毫秒,那么

a = a + 1    'a代表经过的时间(单位:秒)

Label1.Caption = Str(Int(a / 60)) + ":" + Str(a - Int(a / 60) * 60)

Int(a / 60)) 表示经过的分钟数的整数部分,

a - Int(a / 60) * 60 表示秒数部分(即剩余的分钟数化为以秒为单位后的数字)

举例如下:

如果a=1205

那么a/60=20.083333333,则Int(a/60)=20

而Int(a/60)*60=1200

所以,a - Int(a/60)*60=5

所以,此时 Label1 应该显示 20:5

即1205秒=20分5秒

  • 3楼网友:鸽屿
  • 2021-08-20 03:28
用c的路过
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯