PDA

View Full Version : [vb6] NeoClock



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