永发信息网

如何让vb6真正地显示当前的系统时间?

答案:5  悬赏:80  手机版
解决时间 2021-04-01 17:02
  • 提问者网友:欲望失宠
  • 2021-04-01 06:58
如何让vb6真正地显示当前的系统时间?
最佳答案
  • 五星知识达人网友:杯酒困英雄
  • 2021-04-01 07:38
只要直接取Time$就可以了。
例如:
Label1.Caption = Time$
如要动态显示系统时间,可以使用以下代码:

Private Sub Form_Load()
  Label1.FontSize = 30
  Label1.ForeColor = vbBlue
  Timer1.Interval = 1000
  Label1.Caption = Time$
End Sub


Private Sub Timer1_Timer()
  Label1.Caption = Time$
End Sub

全部回答
  • 1楼网友:深街酒徒
  • 2021-04-01 11:39
do
doevents
label1.caption=now
loop
  • 2楼网友:神也偏爱
  • 2021-04-01 10:17
难道你用Timer控件不断刷新now获得的与Windows的任务栏里不一致?追问有误差追答怎么可能呢?
Now 是VB的函数,注意:它是一个不用参数的函数;
它返回的就是计算机当前的日期包括时间,它的时间精确到秒,而任务栏里显示的精确到分,要说不一样就在这里,而用Now 返回的时间要比任务栏的精确!!!
  • 3楼网友:千夜
  • 2021-04-01 09:22
now不是变量,是函数,这个函数返回值就是系统当前时间,与任务栏右下角的时钟完全一致。追问Now是变量,不信你看编程书。。。Now是不属于数值、字符串等类型的变量。它叫时间变量。追答好吧,不管你叫它什么,now得到的时间和任务栏时间绝对没有区别
  • 4楼网友:酒者煙囻
  • 2021-04-01 09:05
新建一个工程,画上两个Label控件和一个Timer控件,并将Timer控件的InterVal属性设置为1。输入如下代码:
Option Explicit
Private Declare Sub GetSystemTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Declare Sub GetLocalTime Lib "kernel32" (lpSystemTime As SYSTEMTIME)
Private Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Private Sub Timer1_Timer()
Dim s As String
Dim s1 As String
Dim sys As SYSTEMTIME
GetLocalTime sys
s = CStr(sys.wYear) + "," + CStr(sys.wMonth) + "," + CStr(sys.wDay)
Label1.Caption = s
s1 = CStr(sys.wHour) + ":" + CStr(sys.wMinute) + ":" + CStr(sys.wSecond) + ":" + CStr(sys.wMilliseconds)
Label2.Caption = s1
End Sub
运行程序,看看是不是你想要的效果。追问你这么做,只是时间信息改成从API中获得了,和用Now获得的效果是一样的,依旧是不断刷新API提供的信息。这样就是再精确,由于没有摆脱Timer控件,也有1毫秒的误差,始终跟在系统真正时间的后面。我想让它直接显示真正的时间,而不是用Timer不断刷某个值跟踪出来的。追答不明白你为什么要在乎那1毫秒的“误差“呢,如果按照你那么说的话,永远也没有办法显示所谓的“真正的时间”的,系统执行代码还会需要时间,这个永远也做不到绝对的精确,就是再精确的表都会有误差,何必追求那么多的“绝对”呢?
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯