Dim timeStart As DatePrivate Sub Form_Load()
     TimerStart = Now()
End SubPrivate Sub Timer_Timer()
     labTime = DateDiff("h", timeStart, Now()) & "小时" & Str$(DateDiff("n", Timerstart, Now()) Mod 60) & "分" & Str$(DateDiff("s", Timer1, Now()) Mod 60) & "秒"
End Sub
我发现时间竟然不准确呀。秒还可以了,分就错差很大,大概56秒就跳1分。
怎么回事呢?
难道只能将秒换算成分才成?

解决方案 »

  1.   

    当然不准,VC不也一样。
    用API timesetevent,timekillevent
      

  2.   

    贴上我的旧帖供参考
    http://expert.csdn.net/Expert/topic/2523/2523006.xml?temp=.321438
      

  3.   

    那是当然的因为9x下的时钟触发是以1/18(取整)为单位的。也就是最小间隔是56ms(小于56的话只能在NT系统下面有点作用),56x18=1008ms,所以难免会差一点。而且精度还可能受到优先级的影响。
      

  4.   

    代码错了,所以不准:)注:不是指TimerStart与timeStart的不同:)
      

  5.   

    Str$(DateDiff("s", Timer1, Now()) Mod 60) & "秒"
    这个timer1???
      

  6.   

    DateDiff("h", timeStart, Now()) & "小时"这个timeStart??
      

  7.   

    试试 GetTickCount:Public Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As LongGetTickCount
      GetTickCount 函数返回系统启动后经历的毫秒数。它受系统时钟精度的限制。如果需要高精度的时钟,请采用 amultimedia timer 或 high-resolution timer。 DWORD GetTickCount(VOID)
     
    参数
      该函数无参数。 返回值
      返回值是系统启动后经历的毫秒数。注:
    下表列出了系统时钟的分辩率:系统分辩率 
    Windows NT 3.5 及以上 系统时钟运行精度约 10ms. 
    Windows NT 3.1 系统时钟运行精度约 16ms. 
    Windows 95 及以上 系统时钟运行精度约 55ms.