Avatar billede rexon Nybegynder
22. juli 2005 - 14:22 Der 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
Avatar billede joern Nybegynder
22. juli 2005 - 17:36 #1
Hej.

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 ).

M.v.h. Jørn
Avatar billede joern Nybegynder
22. juli 2005 - 17:40 #2
hej igen.

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
Avatar billede rexon Nybegynder
22. juli 2005 - 19:04 #3
hmm, er blevet lidt klogere, men kan du vise hvordan det kan brgues i mit eksempel?
Avatar billede joern Nybegynder
22. juli 2005 - 20:13 #4
Hej.

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

M.v.h. Jørn
Avatar billede kabbak Professor
23. juli 2005 - 23:13 #5
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
Avatar billede rexon Nybegynder
23. juli 2005 - 23:29 #6
Kabbak thx, lige det svar jeg ville have, og også thx til joern, skal se om jeg kan give point til jer begge!
Avatar billede rexon Nybegynder
31. juli 2005 - 10:32 #7
#kabbak synes bare ikke at det hjælper kun at / det med 24?
Avatar billede rexon Nybegynder
31. juli 2005 - 10:34 #8
jov det hjalp da ;)
mange tak skal du have!
Avatar billede rexon Nybegynder
01. august 2005 - 16:05 #9
#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)"

har i en løsning?
Avatar billede kabbak Professor
01. august 2005 - 17:58 #10
Private Sub ok_Click()
Dim Tid As Date, tid1 As Integer
If Check1 And Check3 = 1 Then
xab = Speedtxt / 60
Tid = (Distancetxt / xab / 60) / 24
tid1 = (Int(Tid) * 24) + Hour(Tid)
timetxt = tid1 & ":" & Minute(Tid) & " hour(s)"

End If
End Sub
Avatar billede rexon Nybegynder
01. august 2005 - 19:35 #11
#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 ;) ?
Avatar billede kabbak Professor
01. august 2005 - 19:52 #12
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)
Avatar billede rexon Nybegynder
01. august 2005 - 19:55 #13
#kabbak så er jeg 100% med ;)
mange tak skal du have for hjælpen ;)
Avatar billede kabbak Professor
01. august 2005 - 20:06 #14
selv tak
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester