webForumDet fria alternativet

Dividera tid?

ASPur ASP

6 svar · 342 visningar · startad av JaktJanne

Medlem sedan feb. 20001 507 inlägg
Frågan#1

Skriver in en tid i långt tidsformat, denna vill jag dividera med ett tal (i mitt fall kilometer).
Det jag är ute efter är snitt tid/Km.

Går det :q
Tydligen blir tiden '01:35:20' en sträng. Använder jag talformat så blir ju det decimalt och det blir inte så bra :(

Skulle vilja beräkna något så här

snitt = Request.Form("Total_tid")/Request.Form("Längd")
Medlem sedan mars 20007 896 inlägg
#2

Räkna ut antalet sekunder totalt i tiden, och dividera sedan med längden. Då får du ut hur många sekunder/km - fortsätt med att dividera med 3600 så borde du få ut rätt värde. Hoppas jag. :)

Otestat:

<%
strTime = "01:35:20"
strKm = "22"
arrTime = Split ( strTime, ":" )

iSeconds = 0
iSeconds = iSeconds & ( cInt ( arrTime ( 0 ) ) * 3600 )
iSeconds = iSeconds & ( cInt ( arrTime ( 1 ) ) * 60 )
iSeconds = iSeconds & cInt ( arrTime ( 2 ) )

iSecsPerHour = cInt ( iSeconds ) / cInt ( strKm )
Response.Write "h/km: " & ( iSecsPerHour / 3600 )
%>
Medlem sedan dec. 200012 464 inlägg
#3
snitt = datediff("s",#00:00:00#,Request.Form("Total_tid"))/Request.Form("Längd")
Medlem sedan mars 20007 896 inlägg
#4

Det var ju lite enklare, ja. ;)

Medlem sedan feb. 20001 507 inlägg
#5

Tackar Lars, ditt exempel funkar perfekt (som vanligt) men mitt slutresultat blir lite knas. Jag tar nämnligen och dividerar snitt/60 för att få det i minuter och då tappar jag decimalerna.

Använde sökfunktionen och skall testa detta när jag kommer hem http://www.webforum.nu/showthread.php?s=&threadid=41175&highlight=decimaler

Medlem sedan feb. 20001 507 inlägg
#6

Tar upp denna igen pga en felberäkning :(
Har jag t.ex Total_tid = 00:12:26 och Längd = 2,5 så skall svaret bli 4,58 (minuter, sekunder) men det blir 4,96.
Det har funkat bra tills det jag fick dessa värde, eller blir det tokigt när man dividerar med 60 för att få fram det i minuter :q

Medlem sedan feb. 20001 507 inlägg
#7

Löste det men går det att förenkla detta mer ?

G_snitt = datediff("s",#00:00:00#,Request.Form("Total_tid"))/Request.Form("Längd")
D_snitt = dateadd("s",G_snitt,#00:00:00#)
R_snitt =  replace (D_snitt, ":", ",")
snitt = Right(R_snitt,4)
129 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)