webForumDet fria alternativet

Räkna ut antalet kvartar

ASP

11 svar · 679 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

:)

Hmm, rubriken blev ju kul...

Jag vill göra en funktion som räknar ut antalet kvartar med antalet timmar som argument.

Typ:


Function GetQuarters(tmAmount)
    
      GetQuarters=tmAmount/0,25
End function

Hur gör man funktionen så bra som möjligt? Dvs att om antalet antalet kvartar inte går jämt ut, skall det avrundas uppåt?

Mvh
Henrik

Medlem sedan dec. 20014 239 inlägg
#2

Varje timme har bara fyra kvartar (skriver man så?) Så det blir omöjligt att få tre kvartar och lite till på en timme.

Medlem sedan jan. 20013 582 inlägg
#3

Jo, men om jag har tex 1,8 timmar så blir det ju 7,2 kvartar. Det måste ju bli jämt antal kvartar liksom... :) (I detta fallet skall det bli 8)

Mvh
Henrik

Medlem sedan dec. 20014 239 inlägg
#4

Aha.. Det var så du menade.
Jag missförstod.

Medlem sedan juni 200032 967 inlägg
#5

Ingemar Stenmark brukar alltid säga: "Hä' bar' å fix."

http://msdn.microsoft.com/en-us/library/t4dseb50(VS.85).aspx

Medlem sedan jan. 20013 582 inlägg
#6

Kanske så här:

Function GetQuarters(tmAmount)
      If isnumeric(tmAmount) then 
            GetQuarters=Int(tmAmount/0,25) 
      else
            GetQuarters=0
      end if
End function

?

Mvh
Henrik

Medlem sedan juni 200032 967 inlägg
#7

Ja, men då är ju inte mitt svar lika roligt.

- - -

Du kanske måste typkonvertera tmAmount innan du räknar med det - jag vet inte vad du skickar in i funktionen.

Medlem sedan jan. 20013 582 inlägg
#8

:)

Medlem sedan apr. 200881 inlägg
#9

Räkna ut antalet minuter, dela på 15.

GetQuarters = (tmAmount * 60) / 15

Medlem sedan juli 200012 978 inlägg
#10

Kvartar skall alltså vara ett heltal.
Ta minuter och dela med femton Modulo +1

Medlem sedan sep. 20005 700 inlägg
#11

devotion skrev:

Function GetQuarters(tmAmount)
      If isnumeric(tmAmount) then 
            GetQuarters=Int(tmAmount/0,25) 
      else
            GetQuarters=0
      end if
End function

Det där kommer alltid att avrunda neråt. För Int beter sig väl så även i VB? Lägg på 0.5 innan du kör Int så får du "korrekt" avrundning.

Medlem sedan juni 200032 967 inlägg
#12

Gein skrev:

Det där kommer alltid att avrunda neråt. För Int beter sig väl så även i VB? Lägg på 0.5 innan du kör Int så får du "korrekt" avrundning.

Hmm, jag läste lite fel i min länk. Jag tror att du har helt rätt!

Annars kan man ju krångla enl. Lasps förslag med en heltalsdivision och lägga på ett om du får någon rest.

273 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
133 ms — deklarationer (db)
0 ms — hämta statistik (cache)
137 ms — hämta tråd, inlägg och bilagor (db)
132 ms — ändringar (db)