22. juli 2005 - 14:22Der er
12 kommentarer og 2 løsninger
Timer og Minutter
Jeg forsøger at lave et program der kan udregne hvor lang tid det tager at køre x antal kilometer med x fart. Det virker sådan set fint nok, men problemet er jo at den ikke kan finde ud af at vise minutter ordentligt. F.eks. skriver den 1.5 hour(s) i stedet for 1.30 hour(s) ellers 1 hour(s) 30 minute(s)
hvordan får jeg den til det?
her er noget af koden:
Private Sub ok_Click() If Check1 And Check3 = 1 Then xab = speedtxt / 60 timetxt = distancetxt / xab / 60 & " hour(s)" End If End Sub
1,5 time er jo korrekt for så vidt det giver mening at bruge decimaler på timer. Den danske standard er ellers med kolon
format(tid,"hh:mm:ss")
Hvis dit program udregner resultatet i timer, skal du udføre beregningen med at finde antal hele timer og omregne resten til minutter ( og evt. sekunder ).
I et af mine programmer udregner jeg varigheden af en MP3 fil således. Backslash deler resultatet af en division i hele og "resten", der beregnes altså ikke decimaler.
If Right(txtmu(9).Text, 3) = "mpg" Then seku1 = FileLen(cdsti & txtmu(9).Text) / 174300 min = seku1 \ 60 seku2 = seku1 - (min * 60) txtmu(13).Text = Format(min & seku2, "00:00") End If
jeg bruger modulus til at finde minutterne, modulus returnerer "resten"
Private Sub Command1_Click() Dim timer, minutter As Integer timer = Val(txtafstand.Text) \ Val(txthast.Text) minutter = 0.6 * (Val(txtafstand.Text) Mod Val(txthast.Text)) txttid.Text = timer & ":" & Format(minutter, "0#") End Sub
Private Sub ok_Click() Dim Tid As Date If Check1 And Check3 = 1 Then xab = speedtxt / 60 Tid = (distancetxt / xab / 60) / 24 timetxt = Tid & " hour(s)" End If End Sub
#kabbak koden virker fint, men hvis resultatet bliver over 24 timer virker det ikke. har forsøgt at finde en løsning men forgæves. også med denne kode:
Private Sub ok_Click() Dim Tid As Date If Check1 And Check3 = 1 Then xab = speedtxt / 60 Tid = (distancetxt / xab / 60) / 24 timetxt = Format(Tid, "hh.mm") & " hour(s)"
#kabbak mange tak det virker jo, hmm, men kan du skrive lidt forklaring til :P
int(tid) - dvs. at den tager et helt tal af tid og ganger det med 24 og + med de resterende timer, eller? gidder du at forklare hvordan den gør det ;) ?
tid1 = (Int(Tid) * 24) hvis der er hele dage, (det bliver det hvis der er over 24 timer) Hele dage er heltal, hvor Timer, minutter og sekunder er dicimaltal
jeg tjekker for heltal, og ganger det med 24, for hver dag er 24 timer.
Nu har jeg fået antal timer for hele dage og adderer derefter timer under 24 timer, det gør jeg med + Hour(Tid)
til sidst kobler jeg minutterne på med Minute(Tid)
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.