Rekenen met tiendes van seconden

Status
Niet open voor verdere reacties.

edje86

Gebruiker
Lid geworden
7 jan 2007
Berichten
5
Voor een sportwedstrijd ben ik een tijdregistratieprogramma aan het maken in Access. Niet onbelangrijk om bij dit programma is het om ook tijd te registreren. Daar heb ik gelijk een probleem. Access heeft zelf al mooie datum en tijds notaties maar die gaan niet verder dan secondes terwijl ik ook tiendes van secondes wil kunnen registreren. Ik wil starttijden (bv 01:26:30:00, 1 uur, 26 minuten, 30 seconden en nul tiendes van seconden) aftrekken van eindtijden en er een gereden tijd mee berekenen. Later moet er dan ook nog een gemiddelde van berekend worden.

Aangezien ik geen datum/tijd veld kan gebruiken moet ik een nummeriek of tekst gegevenstype gebruiken: 01.26.30.00 - 01.43.29.33 gaat echter niet. Ik heb geen functies gevonden in VBA die hiermee kunnen rekenen. Heb al op vele fora gezocht, gegoogled en de helpfunctie geraadpleegt maar zonder resultaat.

Enige denkbare oplossing voor mij is rekenen als op de basisschool:

1e + 2e karakter x 60 en dan optellen bij het 3e en 4e karakter.
3e en 4e karakter x 60 en dan optellen bij het 5e en 6e karakter.
5e en 6e karakter x 100 en optellen bij het 7e en 8e karakter.

Dan heb je een totaal aantal tiendes van seconden waar je dan mee kan verder rekenen met de finishtijd en dan weer alles terug rekenen.

Volgens mij is dit een manier waarop je eruit kan komen maar kan me niet voorstellen dat er niets makkelijkers bestaat. Of is een datum/tijd veld zo aan te passen dat ik die kan gebruiken?

Kan iemand mij even een duw geven in de goede richting?
 
Ik vrees dat je inderdaad de wiskunde-les zal moeten gebruiken. Wat je wel kan doen is splitsen. Vb. je rekent met de "normale" tijd, en de 100- sten appart. vb. persoon start om 02:00:00:10 en komt aan om 03:00:00:50 dan is dus de totale gereden tijd 01:00:00:40. Dus je laat access de "normale" tijd uitreken -> (03:00:00)-(02:00:00) en dan de honderdsten appart. zo zou het eventueel makkelijker zijn.
 
Voor een sportwedstrijd ben ik een tijdregistratieprogramma aan het maken in Access. Niet onbelangrijk om bij dit programma is het om ook tijd te registreren. Daar heb ik gelijk een probleem. Access heeft zelf al mooie datum en tijds notaties maar die gaan niet verder dan secondes terwijl ik ook tiendes van secondes wil kunnen registreren. Ik wil starttijden (bv 01:26:30:00, 1 uur, 26 minuten, 30 seconden en nul tiendes van seconden) aftrekken van eindtijden en er een gereden tijd mee berekenen. Later moet er dan ook nog een gemiddelde van berekend worden.

Aangezien ik geen datum/tijd veld kan gebruiken moet ik een nummeriek of tekst gegevenstype gebruiken: 01.26.30.00 - 01.43.29.33 gaat echter niet. Ik heb geen functies gevonden in VBA die hiermee kunnen rekenen. Heb al op vele fora gezocht, gegoogled en de helpfunctie geraadpleegt maar zonder resultaat.

Enige denkbare oplossing voor mij is rekenen als op de basisschool:

1e + 2e karakter x 60 en dan optellen bij het 3e en 4e karakter.
3e en 4e karakter x 60 en dan optellen bij het 5e en 6e karakter.
5e en 6e karakter x 100 en optellen bij het 7e en 8e karakter.

Dan heb je een totaal aantal tiendes van seconden waar je dan mee kan verder rekenen met de finishtijd en dan weer alles terug rekenen.

Volgens mij is dit een manier waarop je eruit kan komen maar kan me niet voorstellen dat er niets makkelijkers bestaat. Of is een datum/tijd veld zo aan te passen dat ik die kan gebruiken?

Kan iemand mij even een duw geven in de goede richting?


Kun je niet proberen in een query de numerieke waarde om te zetten naar datum/tijd? Want dan kun je de tijd omzetten naar seconden (4 min = dan 240 sec) en met seconden kun je simpel rekenen.
 
Kun je niet proberen in een query de numerieke waarde om te zetten naar datum/tijd? Want dan kun je de tijd omzetten naar seconden (4 min = dan 240 sec) en met seconden kun je simpel rekenen.

Je bedoelt mijn wiskundeles dmv een query laten uitvoeren? Want ik was al van plan (indien niet anders mogelijk) alles terug te rekenen naar tiendes van seconden om er daarmee te gaan rekenen. Ik begrijp je bedoeling van een query maar snap niet hoe en waar ik dat zou kunnen toepassen in mijn app
 
Wel, dat is juist het makkelijkste. In je query maak je een expressie [eindtijd]-[Begintijd] en een 2° expressie voor de 100-sten [eind]-[begin]. Aangezien je met je berekening van 100-sten nooit boven de 99 kan komen, denk ik dat dit de makkelijkste oplossing is.
 
Wel, dat is juist het makkelijkste. In je query maak je een expressie [eindtijd]-[Begintijd] en een 2° expressie voor de 100-sten [eind]-[begin]. Aangezien je met je berekening van 100-sten nooit boven de 99 kan komen, denk ik dat dit de makkelijkste oplossing is.

Maar wanneer dit los van elkaar staat wat gebeurt er dan bij bv 01:20:23:45 - 00:56:38: 86?

45-86 kan die alleen doen als die er ook weer een seconde van af haalt.
 
Oh, nu kan ik even niet meer volgen. Ik dacht, een renner vertrek om 12:00:00:00 en komt aan om 13:00:00:40. Dus de gereden tijd is dan 01:00:00:40. of is dit niet de bedoeling of wat anders?
 
Sorry je hebt gelijk. Ik zette het verkeerd neer, dit is wat ik bedoel:

01:20:23:45 - 01:56:38: 86
 
Wel dan is de gereden tijd 00:36:15:41 . dus: [01:56:38]-[01:20:23] -> 00:36:15 [86]-[45] -> 41 dus ... klopt als een bus. Aangezien je nooit boven de 99"" kan komen is dit denk ik toch wel het makkelijkste.
 
En bij deze?

Starttijd= 01:20:23:90
Eindtijd= 01:56:38:40

Gereden tijd = 01:56:38:40 -01:20:23:90= dan zullen de functies met elkaar moeten werken
 
Je zult eerst beide tijden om moeten rekenen naar tienden van seconden, vervolgens van elkaar aftrekken en dan weer omrekenen naar uren, minuten, seconden en tienden van seconden.

Tardis.
 
En bij deze?

Starttijd= 01:20:23:90
Eindtijd= 01:56:38:40

Gereden tijd = 01:56:38:40 -01:20:23:90= dan zullen de functies met elkaar moeten werken

Dat blift volgens mij juist hetzelfde. Berekening 1 [01:56:23]-[01:20:23] = 00:36:15 berekening 2 [100-40] = 60 [100-90] = 10 [60-10]= 50 dus 00:36:15:50 of ben ik mis?
 
of ben ik mis?

Inderdaad, je bent mis.
Reken nog maar eens na ;)

Enige oplossing is en blijft omrekenen naar de kleinste eenheid en daarna weer terugrekenen.
Da's trouwens een standaard aanpak in Access als je tijdsverschillen wilt berekenen.

Tardis
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan