Zachafer
03-31-2012, 09:39 AM
'Put in a class module
Option Explicit
Private Declare Function QueryPerformanceFrequencyAny Lib "kernel32" Alias _
"QueryPerformanceFrequency" (lpFrequency As Any) As Long
Private Declare Function QueryPerformanceCounterAny Lib "kernel32" Alias _
"QueryPerformanceCounter" (lpPerformanceCount As Any) As Long
Dim startTime As Date
Dim mFrequency As Currency, mStartTime As Currency, mEndTime As Currency
Private Sub Class_Initialize()
QueryPerformanceFrequencyAny mFrequency
End Sub
Public Sub SetTime(NST As String)
startTime = NST
QueryPerformanceCounterAny mStartTime 'reset
End Sub
Public Function GetTime() As Date
QueryPerformanceCounterAny mEndTime
GetTime = DateAdd("s", Math.Round((mEndTime - mStartTime) / mFrequency), startTime)
End Function
Keeps a running clock. Set a start time for it and it will keep the time up to date. Useful for attic autobuying, displaying NST, or anything else that is time-related.
Usage:
Dim nc As NeoClock
Set nc = New NeoClock
Debug.Print "StartTime: 7:31:28 AM"
nc.SetTime ("7:31:28 AM")
MSToWait 4000
Debug.Print "GetTime: " & nc.GetTime()
'StartTime: 7:31:28 AM
'GetTime: 7:31:32 AM
Option Explicit
Private Declare Function QueryPerformanceFrequencyAny Lib "kernel32" Alias _
"QueryPerformanceFrequency" (lpFrequency As Any) As Long
Private Declare Function QueryPerformanceCounterAny Lib "kernel32" Alias _
"QueryPerformanceCounter" (lpPerformanceCount As Any) As Long
Dim startTime As Date
Dim mFrequency As Currency, mStartTime As Currency, mEndTime As Currency
Private Sub Class_Initialize()
QueryPerformanceFrequencyAny mFrequency
End Sub
Public Sub SetTime(NST As String)
startTime = NST
QueryPerformanceCounterAny mStartTime 'reset
End Sub
Public Function GetTime() As Date
QueryPerformanceCounterAny mEndTime
GetTime = DateAdd("s", Math.Round((mEndTime - mStartTime) / mFrequency), startTime)
End Function
Keeps a running clock. Set a start time for it and it will keep the time up to date. Useful for attic autobuying, displaying NST, or anything else that is time-related.
Usage:
Dim nc As NeoClock
Set nc = New NeoClock
Debug.Print "StartTime: 7:31:28 AM"
nc.SetTime ("7:31:28 AM")
MSToWait 4000
Debug.Print "GetTime: " & nc.GetTime()
'StartTime: 7:31:28 AM
'GetTime: 7:31:32 AM