18. maj 2004 - 00:24Der er
13 kommentarer og 2 løsninger
Kalde funktion igen
Jeg har denne funktion:
forskel = datediff("s", rs("time"),tidnu)
FUNCTION beregn (tid) tid1=0 tid2=0 tid3=0 tid4=0 if tid < 60 then tid1 = tid end if
if tid >= 60 and tid < 3600 then tid2 = int(tid/60) 'minutter tid10 = tid mod 60 beregn(tid10) end if
if tid >= 3600 and tid < 86400 then tid3 = int(tid/3600) 'timer tid11 = tid mod 3600 beregn(tid11) end if
if tid >= 86400 then tid4 = int(tid/86400) 'dage tid12 = tid mod 86400 beregn(tid12) end if beregn = tid4 & " Dage, "& tid3 &" Timer, " & tid2 & " Minutter, " & tid1 & " sekunder." END FUNCTION
Som i kan se, bruger jeg flere steder at funktionen kalder sig. men den skriver kun det første den beregner.. fx. hvis jeg tester beregn(4080) kører den så ned til: if tid >= 3600 and tid < 86400 then og kører den, men der er jo noget rest så vil jeg gerne havde den til at gøre igen med rest som i kan se jeg gør her beregn(tid11).. men det gør den ikke fordi det eneste den returnere i funktionen er timenantallet.. og så går den ud af funktion... Hvorfor
Men hov den holder jo ikke helt.... fordi den skriver faktisk 0 Dage, 2 Timer, 0 Minutter, 0 sekunder
Fordi jeg har sat dem som 0 i starten... hvis jeg ikke havde def. dem til 0 øverst var det bare tomt.. så den kan umiddelbart returnere mere end en variabel..
Din funktion regner rimelig forkert synes.. hvis jeg taster en dato/tid for 10 sek siger den f.eks 1 dag, 3 timer, 0 minutter, 11 sekunder.. selvom der kun er gået 10 sek.
Klarede den selv med denne: Function CountDown(Slut) s_s = slut s_d = s_s Mod 86400 d = int(s_s / 86400) s_t = s_d Mod 3600 t = int(s_d / 3600) s_m = s_t mod 60 m = int(s_t / 60) s = s_m
CountDown = "" & d & " dage og " & t & " timer og " & m & " minutter og " & s & " sekunder" End Function
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.