Gå til innhold

Desimal til time og minutt konvertering ?


Anbefalte innlegg

Jeg får ut f.eks 12.1 timer av et mattestykke jeg har i et program. Jeg ønsker å konvertere dette til 12 timer og 6 minutter med en VB kode.

 

Ønsker også å plusse de 12.1 timene på nåtid klokken. Hvis klokken er 12:00 nå så skal utregnelsen vise 24:01

 

 

 

Noen som har en ide hvordan det kan gjøres på en enkel måte ? :-)

Lenke til kommentar
Videoannonse
Annonse

Akkurat som opix sier, slik:

Dim Tall As String
Tall = 12.1

Dim SplittBuff
SplittBuff = Split(Tall, ",")

MsgBox SplittBuff(0) & " timer, og " & SplittBuff(1) * 6 & " minutter"

Edit: For å plusse kan du gjøre slik:

Dim Tall As String
Tall = 12.1

Dim SplitBuff
SplitBuff = Split(Tall, ",")

Dim SplitBuff2
SplitBuff2 = Split(Time, ":")

Dim Tid
Tid = Val(SplitBuff(0)) + Val(SplitBuff2(0)) & ":" & Val(SplitBuff(1) * 6) + Val(SplitBuff2(1))

MsgBox Tid

Endret av Jonas
Lenke til kommentar

Da bruker vi en If og sjekker om det ikke er desimaler, og lager et array "manuelt". Slik:

Dim Tall As String
Tall = 12.1

Dim SplitBuff
SplitBuff = Split(Tall, ",")

If UBound(SplitBuff) = 0 Then SplitBuff = Array(SplitBuff(0), 0)

Dim SplitBuff2
SplitBuff2 = Split(Time, ":")

Dim Tid
Tid = Val(SplitBuff(0)) + Val(SplitBuff2(0)) & ":" & Val(SplitBuff(1) * 6) + Val(SplitBuff2(1))

MsgBox Tid

Edit: La til all koden.

Endret av Jonas
Lenke til kommentar

Jeg regnet med at du ville ha det sånn, siden det står 24:01 i første innlegg. Uansett, det kan man bare fikse med en Loop. Slik:

Dim Tall As String
Tall = 12.1

Dim SplitBuff
SplitBuff = Split(Tall, ",")

If UBound(SplitBuff) = 0 Then SplitBuff = Array(SplitBuff(0), 0)

Dim SplitBuff2
SplitBuff2 = Split(Time, ":")

Dim Tid, EkstraDager As Long, DagBuff As Long

DagBuff = Val(SplitBuff(0)) + Val(SplitBuff2(0))

Do Until DagBuff <= 24
   
   EkstraDager = EkstraDager + 1
   DagBuff = DagBuff - 24
   
Loop

Tid = DagBuff & ":" & Val(SplitBuff(1) * 6) + Val(SplitBuff2(1))

MsgBox Tid
MsgBox "Ekstra dager: " & EkstraDager

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...