Permalänk
Medlem

Round down i VB?

Tjong!

Någon som vet om det finns någon färdig funktion för round down i VB?

alltså tex

Round på 3/2 ska bli 1 och inte 2

Vet inte om detta blev så tydligt....

Detta är funktionen som jag ska använda det i

Private Function getStopTime(byval StartTime as String,ByVal duration As Long) As String
Dim tmpDur As Long
Dim timmar, minuter, sekunder As Integer
timmar = Round(duration / 3600)
tmpDur = duration - (3600 * timmar)
minuter = Round(tmpDur / 60)
tmpDur = tmpDur - (60 * minuter)
sekunder = tmpDur

End Function

Jag ska alltå ta reda på hur många timmar, minuter och sekunder
"duration" inehåller

Visa signatur

Kan det jävlas så jävlas det!

Permalänk
Medlem

Re: Round down i VB?

Citat:

Ursprungligen inskrivet av Pjoter
Tjong!

Någon som vet om det finns någon färdig funktion för round down i VB?

alltså tex

Round på 3/2 ska bli 1 och inte 2

Vet inte om detta blev så tydligt....

Detta är funktionen som jag ska använda det i

Private Function getStopTime(byval StartTime as String,ByVal duration As Long) As String
Dim tmpDur As Long
Dim timmar, minuter, sekunder As Integer
timmar = Round(duration / 3600)
tmpDur = duration - (3600 * timmar)
minuter = Round(tmpDur / 60)
tmpDur = tmpDur - (60 * minuter)
sekunder = tmpDur

End Function

Jag ska alltå ta reda på hur många timmar, minuter och sekunder
"duration" inehåller

Är det VB.net? isåfall borde math.floor() funka, men är det inte .net så vet jag inte.. kanske finns nån floor() funktion där med, borde det göra iaf

Sedan har du ju timespan datatypen oxo, då kan ju bara köra en:

Private Function getStopTime(byval StartTime as String,ByVal duration As Long) As String Dim tmpDur As Long Dim timmar, minuter, sekunder As Integer Dim tmpTimespan as new Timespan(0,0,0,tmpDur,0) timmar = tmpTimespan.Hours minuter = tmpTimespan.Minutes sekunder = tmpTimespan.Seconds return timmar.tostring & ":" & minter.tostring & ":" & sekunder.tostring End Function

så slipper du avrunda själv

fast om du vill ha tiden i strängformat bara så finns det ju en inbyggd tostring funktion i timespan, så istället för att anropa hela funktionen ovan så kan du ju bara köra:

new Timespan(0,0,0,antalSekunderJagvillKolla,0).tostring

Visa signatur

Är du snabbare än en gris? AnimalSpeeder ger dig svaret:
http://itunes.apple.com/se/app/animalspeeder/id551490974?l=en...

Permalänk
Medlem

Int() konverterar talet till en int, vilket inte kan innehålla decimaler. Den kapar sonika bara bort dem.

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av Don_Tomaso
Int() konverterar talet till en int, vilket inte kan innehålla decimaler. Den kapar sonika bara bort dem.

Detta gör ju det hela väldigt enkelt...

Hade redan löst problemet med lite rundkodning men detta blir ännu enklare...

Citat:

Är det VB.net? isåfall borde math.floor() funka, men är det inte .net så vet jag inte.. kanske finns nån floor() funktion där med, borde det göra iaf

Sedan har du ju timespan datatypen oxo, då kan ju bara köra en:

code:
Private Function getStopTime(byval StartTime as String,ByVal duration As Long) As String
Dim tmpDur As Long
Dim timmar, minuter, sekunder As Integer
Dim tmpTimespan as new Timespan(0,0,0,tmpDur,0)
timmar = tmpTimespan.Hours
minuter = tmpTimespan.Minutes
sekunder = tmpTimespan.Seconds
return timmar.tostring & ":" & minter.tostring & ":" & sekunder.tostring
End Function

så slipper du avrunda själv

fast om du vill ha tiden i strängformat bara så finns det ju en inbyggd tostring funktion i timespan, så istället för att anropa hela funktionen ovan så kan du ju bara köra:

code:
new Timespan(0,0,0,antalSekunderJagvillKolla,0).tostring

Ännu en intressant datatyp som jag inte har pillat med...

Tack för all hjälp!

Visa signatur

Kan det jävlas så jävlas det!

Permalänk

Ett bra sätt att avrunda neråt är ju annars att använda vanliga Round() men först ta talet som ska avrundas minus 0.5 först.

Alltså Round(sngTalet - 0.5)

Det ger alltid en avrundning neråt eftersom du plockar bort 0.5 först.

/Anders

Visa signatur

**************************
Om det fungerar för bra, installera om det...