I need to add milliseconds to this finishtime of race - [Forms]![RaceSetupttF]![RaceTimingTTSF1]![RaceFinishTime] = Format(Now(), "General Date")
Start code for race also in milliseconds - [Forms]![RaceSetupttF]![Rt_StartTTSF]![startTT] = Format(Now(), "General Date")
I will then subtract it from the start time and get a result in milliseconds - RacingTime: Format([Racefinishtime]-[startTT],"hh:nn:ss")
Any suggestions on how this can be accomplished?
16 38374
Access Now() will only record as accurate as down to 1 second. So you can't use that. I also dont think (but dont know for sure) that you can store time in date/time field more accurately then down to the second. And you will still need to custom format it when you want to display it.
Now this is something I use to time my procedures to see how long they take, and how different approaches can shorten the run time.
Place this code in a CLASS module called StopWatch. (I did not write the original code, though I did modify it somewhat) - Private mlngStart As Long
-
Private Declare Function GetTickCount Lib "kernel32" () As Long
-
-
Public Sub StartTimer()
-
mlngStart = GetTickCount
-
End Sub
-
-
Public Function EndTimer() As String
-
Dim EndTime As Long
-
EndTime = (GetTickCount - mlngStart)
-
Dim s As Integer
-
s = EndTime / 1000
-
Dim ms As Integer
-
ms = EndTime Mod 1000
-
If s > 1 Then
-
EndTimer = s & "s, " & ms & "ms"
-
Else
-
EndTimer = ms & "ms"
-
End If
-
End Function
When I use this timer it looks like this: - Private sub MyFunction()
-
'Start stopwatch
-
Dim mySW as stopwatch
-
mySW.StartTimer
-
-
'Rest of my code goes here
-
-
'Reached the end of code, printout how long it took to run it
-
Debug.Print "MyFunction ran in:" & mySW.EndTimer
-
End Sub
ADezii 8,834
Recognized Expert Expert
Thx for the advice so far. I am struggling with modules and to link to them from a button.
i am attaching part of the application ( deleted parts of it to make it smaller)
How do i add these milliseconds functions to the "Start Rider" and "Add time" buttons? Both buttons use Now() currently. Will it be different to deduct the finish and start times now? Please help.
ADezii 8,834
Recognized Expert Expert
The way that I see things is that what you are requesting would be difficult to implement, for the reasons given by TheSmileyOne. You can display the Current Time as 16:48:01:0913, but since this is not a true Date Value, you would not be able to perform mathematical calculations on in without the addition of some innovative Code.
The only calculation i am going to have for this milliseconds on one of my forms, is finishtime minus starttime (with mulliseconds), No additions required etc. Is that possible?
Its for a specific type of racing called timetrial where they race individually from point A to B and back to A. You may have 2 persons with the same racingtime and that's where the milliseconds come in
I've adapted the code originally supplied by Mary to return the system time in milliseconds as a long int value. This can be used as in the test function to assign times then subtract them afterwards to get the true difference in milliseconds.
I hope this helps. - Option Compare Database
-
Option Explicit
-
-
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 Declare Sub GetSystemTime Lib "kernel32" _
-
(lpSystemTime As SYSTEMTIME)
-
-
Public Function TimeToMillisecond() As Long
-
Dim tSystem As SYSTEMTIME
-
Dim sRet As Long
-
On Error Resume Next
-
GetSystemTime tSystem
-
With tSystem
-
sRet = (CLng(.wHour) * 60 * 60 * 1000) + (CLng(.wMinute) * 60 * 1000) + CLng(.wSecond) * 1000 + .wMilliseconds
-
End With
-
TimeToMillisecond = sRet
-
End Function
-
-
-
-
Public Function TimeTest()
-
Dim lngV1 As Long, lngV2 As Long, lngCounter As Long
-
lngV1 = TimeToMillisecond
-
For lngCounter = 1 To 1000000000
-
Next
-
lngV2 = TimeToMillisecond
-
Debug.Print "First Time: " & lngV1, "Second Time: " & lngV2, "Diff (ms): " & lngV2 - lngV1
-
End Function
-
Example of test run:
? TimeTest
First Time: 37081308 Second Time: 37088349 Diff (ms): 7041
-Stewart
Oops. I forgot to provide a way to show the system time in ms in its normal form: - Public Function ShowSysTime(ByVal Tms As Long) As String
-
Const MsInHour = 3600000
-
Const MsinMin = 60000
-
Const MsInSec = 1000
-
Dim lngHrs As Long
-
Dim lngMins As Long
-
Dim lngSecs As Long
-
Dim lngMs As Long
-
lngHrs = Tms \ MsInHour
-
Tms = Tms - (lngHrs * MsInHour)
-
lngMins = Tms \ MsinMin
-
Tms = Tms - (lngMins * MsinMin)
-
lngSecs = Tms \ MsInSec
-
Tms = Tms - (lngSecs * MsInSec)
-
lngMs = Tms
-
ShowSysTime = Format(lngHrs, "00") & ":" & Format(lngMins, "00") & ":" & Format(lngSecs, "00") & ":" & Format(lngMs, "000")
-
End Function
Test run:
? ShowSysTime(Tim eToMillisecond)
10:38:19:478
-Stewart
PS Please note that neither Mary's original code nor my adapted versions above handle transitions from one day to the next where the times extend past midnight (e.g. for 23:30:00:567 to 00:01:30:123). The SystemTime type does contain a .wDay component that could be used in extending the code provided for that purpose if necessary.
thx for the trouble. How do i incorporate it into a form and link it to a button. I am novice but learning fast.
ADezii 8,834
Recognized Expert Expert
The following Code takes a radically different approach, and incorporates all logic in a single Function Procedure. It accepts 2, precisely formatted String Arguments representing Time Values in the Format of: - hh:nn:ss:llll
-
h = Hours
-
n = Minutes
-
s = seconds
-
l = Milliseconds
-
-
Examples:
-
12:43:13:0854
-
23:02:58:0012
-
The Function will then return the Time Difference in Milliseconds. For the sake of simplicity and brevity, it performs minimal Validations on the Inputs and does not take into consideration the Midnight barrier. I don't really think this would apply to races anyway. I have not spent that much time on the Logic, so it may need a little work. P.S. - I'll post the Code, but feel free to Download the Attachment, play with it, and see what you think. Any questions, feel free to ask. - Public Function fCalcTimeDifference(strStart As String, strFinish As String) As Long
-
Dim dteStart As Date
-
Dim dteFinish As Date
-
Dim lngMilliDiff As Long
-
Dim lngStartMilliSecs As Long
-
Dim lngFinishMilliSecs As Long
-
-
'Extract Real Time Values from strStart minus Milliseconds
-
dteStart = TimeValue(Left$(strStart, 8))
-
dteFinish = TimeValue(Left$(strFinish, 8))
-
lngStartMilliSecs = Val(Right$(strStart, 4))
-
lngFinishMilliSecs = Val(Right$(strFinish, 4))
-
-
'If the Base Times are equal, and the only difference is in Milliseconds, as in:
-
'11:30:10:0099 - 11:30:10:0345
-
If (dteStart = dteFinish) And (lngFinishMilliSecs > lngStartMilliSecs) Then
-
fCalcTimeDifference = (lngFinishMilliSecs - lngStartMilliSecs)
-
'Debug.Print dteStart & " ==> " & dteFinish
-
Else 'Start Time <> Finish Time
-
'Check the Millisecond Component of the time to see if Finish Millisecond >
-
'Start Millisecond, if this is not true, then we need to 'borrow' 1 second
-
'(1,000 Millisecond) from the Finish
-
If lngFinishMilliSecs > lngStartMilliSecs Then 'We're good
-
'Convert Time Differential in Milliseconds
-
lngMilliDiff = (DateDiff("s", dteStart, dteFinish) * 1000) + _
-
(lngFinishMilliSecs - lngStartMilliSecs)
-
fCalcTimeDifference = lngMilliDiff
-
Else
-
'Need to 'borrow' 1 second from Finish Time and add it to Milliseconds Component
-
dteFinish = DateAdd("s", -1, dteFinish) 'Borrowed a second, will add to
-
'Millisecond Component
-
lngMilliDiff = (DateDiff("s", dteStart, dteFinish) * 1000) + _
-
((lngFinishMilliSecs + 1000) - lngStartMilliSecs)
-
fCalcTimeDifference = lngMilliDiff
-
End If
-
End If
-
End Function
Sign in to post your reply or Sign up for a free account.
Similar topics |
by: Richard Visser |
last post by:
Hi, i've found this DateRangeSelector :
http://www.petrafex.com/view/pgID/21/db/pages/date_range_selector_date_manip
ulation__dates_.html . This works fine but i need it to send the dates as :
yyyy-mm-dd or dd-mm-yyyy instead of the milliseconds it using now. I also
want to get rid of the 'show calender' pop-ups, i just need the Date Range
Selector dropdowns. There is a demo and a download.
I'm a newbie to javascript, so can someone...
|
by: gregg |
last post by:
Hi,
I have to record the execution time of a program, but in milliseconds
(the target language of the project initially was Pascal, but I talked
the boss into letting me code it in C).
So now, time.h gives time_t time() all right, but it returns it in
milliseconds since the Epoch.
Do you know of a way I could grab time in milliseconds (while keeping to
|
by: Daniel |
last post by:
how to get the number of milliseconds between two System.DateTime objects
|
by: HL |
last post by:
I am using VS 2005 Beta - C#
Problem: The Timer fires a few milliseconds before the actual Due-Time
Let's say a timer is created in the following manner:
System.Threading.Timer m_timer = null;
Let's declare a constant
Int32 m_TimePeriod = 10000;
|
by: Willie jan |
last post by:
place this behind a button that fills a listbox.
as you will see the time is now and then 0 or filled in????????????
by hitting the button.
is there a way to determine the real elapsed time?
thanks, Willie
Dim T As Double
| |
by: Sharon |
last post by:
I need to test a performance of some code of mine.
I tried using the Environment.TickCount but its resolution is too low (from
the MSDN remarks: The resolution of the TickCount property cannot be less
than 500 milliseconds.), I also tried the DateTime and it also gives me
minimum resolution of 500 milliseconds.
But I need to measure much less the 500 milliseconds, I need it to be
several milliseconds.
How can I do that?
--------
|
by: Manikandan |
last post by:
Hi,
I need to insert the datetime with milliseconds value into a datarow.
My code as below
DataTable testDataTable=new DataTable();
testDataTable.Columns.Add("updatedDateTime", typeof(DateTime));
DataRow testDateRow=surveyUpdatedDateDataTable.NewRow();
|
by: Joe, G.I. |
last post by:
Hi all,
I'm trying to generate about 50 numbers as milliseconds between 0 and 4
seconds and it's driving me crazy.
Can anyone help out on how to do this? Any help much appreciated.
|
by: ndedhia1 |
last post by:
I was reading in a log file like this that had no milliseconds:
QuoteBlockTiming exceeded 1 ms: 1 --- Thu Dec 10 02:01:40 CST 2009 170.137.15.155 Class key = 601650761 block size
QuoteBlockTiming exceeded 1 ms: 1 --- Thu Dec 10 02:01:40 CST 2009 170.137.15.155 Class key = 606887631 block size
QuoteBlockTiming exceeded 1 ms: 1 --- Thu Dec 10 02:01:40 CST 2009 170.137.15.155 Class key = 154517966 block size
QuoteBlockTiming exceeded 1 ms: 1...
|
by: marktang |
last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However, people are often confused as to whether an ONU can Work As a Router. In this blog post, we’ll explore What is ONU, What Is Router, ONU & Router’s main usage, and What is the difference between ONU and Router. Let’s take a closer look !
Part I. Meaning of...
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
| |
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
|
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: tracyyun |
last post by:
Dear forum friends,
With the development of smart home technology, a variety of wireless communication protocols have appeared on the market, such as Zigbee, Z-Wave, Wi-Fi, Bluetooth, etc. Each protocol has its own unique characteristics and advantages, but as a user who is planning to build a smart home system, I am a bit confused by the choice of these technologies. I'm particularly interested in Zigbee because I've heard it does some...
|
by: isladogs |
last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM).
In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules.
He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms.
Adolph will...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
| |
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |