Avatar billede bugger Nybegynder
05. juli 2003 - 11:32 Der er 8 kommentarer og
1 løsning

Udregning af kilometertider og fart på baggrund af timer,minutter

Hejsa

Jeg er ved at lave en løbeomregner som kan bruges til at man indtaster en distance man har løbet og den tid man har været om det. Meningen er så at man skal kunne se med hvilken hastighed man har løbet (km/t)og hvor lang tid man har været om at løbe en kilometer (min/km), men hvordan gør jeg det i ASP?


Jeg får dataene her:
vartimer=request.form("timer")    -fx. 1 time
varminutter=request.form("minutter")  -fx. 16 minutter
varsekunder=request.form("sekunder")  -fx. 37 sekunder
varkilometer=request.form("kilometer") -fx. 15 km
var100meter=request.form("100meter")  - fx. 300 meter
varmeter=request.form("meter")  - fx. 57 meter

Jeg har i ovenstående eksempel løbet 15,357 km på 1:16:37

Men som sagt hvordan kan jeg fra ovennævnte data udregne km/t og minutter pr. kilometer?

Tak for hjælp
henrik
Avatar billede eagleeye Praktikant
05. juli 2003 - 11:54 #1
Ja det skulle være muligt.

vartimer=request.form("timer")
varminutter=request.form("minutter")
varsekunder=request.form("sekunder")
varkilometer=request.form("kilometer")
var100meter=request.form("100meter")
varmeter=request.form("meter")

totalmeter = Int(varkilometer) * 1000 + Int(var100meter) + Int(varmeter)
totalsekunder = Int(vartimer) * 60 * 60 + Int(varminutter)*60 + Int(varsekunder)

kmprtime = Round((totalmeter/1000)/(totalsekunder/3600),2)
minprkm = Round((totalsekunder/60)/(totalmeter/1000),2)

Reponse.write "Hastighed km/t : " & kmprtime & "<br>"
Reponse.write "Tid pr km min/km : " & minprkm
Avatar billede bugger Nybegynder
05. juli 2003 - 12:17 #2
Hej eagleeye
Tak for hurtigt svar.
kmprtime er korrekt, men det er minprkm ikke.
Hvis jeg fx løber 15260 meter på 1:13:40 får jeg følgende resultater ifølge dine beregninger:

kmprtime=12,43
minprkm=4,83

Hvor det rigtige ifølge et excelregneark er

kmprtime=12,43
minprkm=4:50

-Hvad er det nu lige "Round" gør? -afrunder med 2 decimaler?
Avatar billede eagleeye Praktikant
05. juli 2003 - 12:25 #3
Ja Round afrunder og 2 betyder med 2 decimaler.

Ja ok, man regner sekunder i 1/60 dele.. :)

Så prøv at rette denne:

minprkm = Round((totalsekunder/60)/(totalmeter/1000),2)


Til dette:

minprkm = (totalsekunder/60)/(totalmeter/1000)
i = inStr(1, minprkm, ",")
if i > 0 then
  minI = left(minprkm,i-1)
  sekI = mid(minprkm,i+1)
  sekI = round(Int(sekI) * (60/100),2)
  minprkm = minI & ":" & sekI
end if
Avatar billede eagleeye Praktikant
05. juli 2003 - 12:35 #4
Udregningen fejler ikke noget det er bare det som bliver vist ;)
de ,83 er bare sekunder i 100/dele og det svare til :50 sekunder i 60/dele.

Når du siger minutter pr kilometer så er det første mest korrekt da det jo er 4,83 minutter og det svare til 4 minutter og 50 sekunder. ;)
Avatar billede bugger Nybegynder
05. juli 2003 - 12:48 #5
Der er noget galt i sætningen :
sekI = round(Int(sekI) * (60/100),2)

Jeg får resultatet:
Tid pr km min/km : 4:49646133682831,2

Jeg kan ikke lige greje hvad der er galt..
Avatar billede eagleeye Praktikant
05. juli 2003 - 13:11 #6
hov det fordi det ikke er et komma tal det. Ret det til Left og ikke round.

sekI = round(Int(sekI) * (60/100),2)

Så den bliver:

sekI = left(sekI * (60/100),2)
Avatar billede bugger Nybegynder
05. juli 2003 - 13:16 #7
YEP det havde jeg faktisk også selv fundet ud af :-)
Det eneste lille bitte problem er at min/km er ikke rundet op, men ned - så tiden fremstå som 4:49 og ikke 4:50 som jo er det rigtige- Er der virkelig ikke en funktion der kan runde af korrekt inden man cutter resten af tallet?

Annyway du får pointene og god weekend....
Avatar billede eagleeye Praktikant
05. juli 2003 - 13:24 #8
Hej kom lige til at tænke på du kan gøre sådan her i stedet for alt det andet:


sekprkm = round((totalsekunder)/(totalmeter/1000))
minI = Int(sekprkm/60)
sekI = sekprkm - minI*60
minprkm = minI & ":" & sekI
Avatar billede bugger Nybegynder
05. juli 2003 - 16:08 #9
Ja genialt, så enkelt kan det gøres.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

KMD A/S

Projektleder

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Cyberdivisionen søger IT-supporter til vores supportteam i Hvidovre

Capgemini Danmark A/S

Client Partner