我用VB做的一个操作,
想测试一下,操作前和操作后的时间差,必须包含毫秒,因为操作时间有可能小是1秒的.
然后获取并计算两个时间的差值????

解决方案 »

  1.   

    VB声明 
    Declare Function GetTickCount Lib "kernel32" Alias "GetTickCount" () As Long 
    说明 
    用于获取自windows启动以来经历的时间长度(毫秒) 
    返回值 
    Long,以毫秒为单位的windows运行时间 private beginLong as long
    private endlong   as longbeginlong=gettickcount()
    你的操作
    endlong=gettickcount()间隔=endlong-beginlong
      

  2.   

    GetTickCount虽然是毫秒级的,但是它无法精确到1毫秒,而好像是55毫秒的样子。
      

  3.   

    下面是一个产生精确延时的例子:
    Private Declare Function QueryPerformanceCounter Lib "kernel32" (lpPerformanceCount As Currency) As Long
    Private Declare Function QueryPerformanceFrequency Lib "kernel32" (lpFrequency As Currency) As LongPrivate Sub DelayTime(ByVal DelayNum As Long)
        Dim Ctr1, Ctr2, Freq As Currency
        Dim Count As Double
        
        If QueryPerformanceFrequency(Freq) Then
            QueryPerformanceCounter Ctr1
            Do
                QueryPerformanceCounter Ctr2
            Loop While (Ctr2 - Ctr1) / Freq * 1000 < DelayNum
        Else
            MsgBox "不支持高精度计数器!"
        End If
    End SubPrivate Sub Command1_Click()
        Call DelayTime(1000)
        MsgBox "test"
    End Sub
      

  4.   

    用这个函数试试
    Function TimeDiff(sBegin, sEnd)
    Dim iHourB, iMinuteB, iSecondB, iMiniSecondB
    Dim iHourE, iMinuteE, iSecondE, iMiniSecondE
    Dim dTimeB, dTimeE, dTimeDiff
    Dim iHour, iMinute, iSecond, iMiniSecondiHourB = clng(Left(sBegin, 2))
    iMinuteB = clng(Mid(sBegin, 4, 2))
    iSecondB = clng(Mid(sBegin, 7, 2))
    iMiniSecondB = clng(Mid(sBegin, 10, 4))iHourE = clng(Left(sEnd, 2))
    iMinuteE = clng(Mid(sEnd, 4, 2))
    iSecondE = clng(Mid(sEnd, 7, 2))
    iMiniSecondE = clng(Mid(sEnd, 10, 4))dTimeB = iHourB * 3600 + iMinuteB * 60 + iSecondB + iMiniSecondB / 1000
    dTimeE = iHourE * 3600 + iMinuteE * 60 + iSecondE + iMiniSecondE / 1000
    dTimeDiff = dTimeE - dTimeBiHour = Int(dTimeDiff / 3600)
    dTimeDiff = dTimeDiff - iHour * 3600
    iMinute = Int(dTimeDiff / 60)
    dTimeDiff = dTimeDiff - iMinute * 60
    iSecond = Int(dTimeDiff)
    dTimeDiff = dTimeDiff - Int(dTimeDiff)
    iMiniSecond = dTimeDiffTimeDiff = iHour & "小时" & iMinute & "分钟" & iSecond & FormatNumber(iMiniSecond, 3) & "秒"
    End Function