Hondaen Skrevet 4. januar 2005 Del Skrevet 4. januar 2005 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
Rescudo Skrevet 5. januar 2005 Del Skrevet 5. januar 2005 Det bak komma (dvs. 1) må ganges med seks. Hvordan du kan dele 12.1 opp i 12 og 1 vet du sikkert (bruk Splitfunksjonen, hvis din versjon av VB har dette). Vet ikke om det finnes noen funksjon for å legge sammen tider, men jeg kan lage en hvis du vil. Lenke til kommentar
Jonas Skrevet 5. januar 2005 Del Skrevet 5. januar 2005 (endret) 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 5. januar 2005 av Jonas Lenke til kommentar
Hondaen Skrevet 5. januar 2005 Forfatter Del Skrevet 5. januar 2005 Jonas: Fungerer bra en stund det der, men så får jeg opp feilmelding: "Out of range" Virker som koden ikke takler å få "12" mens 12.1 går bra siden det er en desimal der.. Hvordan kan dette løses da ? Lenke til kommentar
Jonas Skrevet 5. januar 2005 Del Skrevet 5. januar 2005 (endret) 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 5. januar 2005 av Jonas Lenke til kommentar
Hondaen Skrevet 5. januar 2005 Forfatter Del Skrevet 5. januar 2005 Se der ja, men når noe blir løst så dukker et nytt problem opp.. koden tar ikke hensyn til 24 timer klokke. Får regnet ut klokken 33:25 og det passer jo ikke helt Lenke til kommentar
Jonas Skrevet 5. januar 2005 Del Skrevet 5. januar 2005 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
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå