27. november 2001 - 11:35Der er
6 kommentarer og 2 løsninger
udregn tider ud fra variable
Hejsa
Jeg har set mig sur på et prob. så nu må I hjælpe mig:-)
Jeg skal finde ud af hvor lang tid der er gået imellem to tidspunkter. Derefter skal sluttiden sættes til starttiden, og der startes forfra.
Tiderne ligger i variabler som integer, og skal altså trækkes fra hinanden som tal, og ikke som tider!
Mellemtiderne er på max 1 time, og programmet skal også køre om natten, på en maskine der kører 24 timers-ur.
Husk at der skal tages højde for, om der er gået et eller flere sekunder, og hvor mange...
Min kode er:
\'hvor mange millisekunder er der gået? If millisecond1 - startMilliseconds < 0 Then Second1 = Second1 - 1 deltamilliseconds = Milliseconds1 + 100 - startMilliseconds Else deltamillisecons = millisecond1 - startmillisecons End If
\'hvor mange sekunder er der gået? If Second1 - startSecond < 0 Then Minute1 = Minute1 - 1 deltasecond = Second1 + 60 - startSecond Else deltasecond = Second1 - startSecond End If
\'hvor mange minuter er der gået? If Minute1 - startMinute < 0 Then Hour1 = Hour1 - 1 deltaminute = Minute1 + 60 - startMinute Else deltaminute = Minute1 - startMinute End If
\'hvor mange timer er der gået? If Hour1 - startHour < 0 Then \' deltahour = Hour1 + 24 - startHour Hour1 = 0 Else \' deltahour = Hour1 - startHour End If
Og så skriver jeg alle deltatiderne ud efter hinanden...
Ups, glemte at skrive, at startxxx er den første tid, og xxxx1 er den tid der er sluttiden, og det er altså forskellen mellem disse tider jeg ønsker...
Private Function SecToTime(Sec As Variant) As String Dim Min As Variant Min = Format(Fix(Sec / 60), \"00\") SecToTime = Format(Fix(Min / 60), \"00\") & \":\" & Format(Min Mod 60, \"00\") & \":\" & Format(Sec Mod 60, \"00\") & \":\" & Format(Sec * 100 Mod 100, \"00\") End Function
Private Sub Command1_Click() If Command1.Caption = \"Start\" Then StartTime = Timer Command1.Caption = \"Stop\" Else Me.Caption = SecToTime(Timer - StartTime) Command1.Caption = \"Start\" End If End Sub
Private Sub Form_Load() Command1.Caption = \"Start\" End Sub \'--- Form1 ---
sjh>> kigger lige på dit svar om lidt... (skal jo også passe mit arbejde...;-)
Jeg kører racerbane (Lidt a la Jyllandsringen, som lå under alle juletræer i midten af 80\'erne). En kammerat har lavet nogle lysfølsomme sensorer, som sender signaler til en PC via parallel-porten. Når løbet begynder, sættes starthour, start minut osv til den aktuelle tid (tt:mm:ss:msms). Når der er kørt 1 omgang, sættes hour1, minute1 osv til den aktuelle tid, og det er forskellen mellem disse 2 tidspunkter jeg skal bruge... Når forskellen er fundet, sætter jeg starthour osv til at være lig hour1, da det er den nye start-tid på omgangen... Hastighederne gør at jeg skal bruge millisekunder eller er tiderne ubrugelige:-(
Så, så, nu skal du ikke komme og spille smart!!!!!;-)
Jo, det kunne hav hjulpet en del af problemet, men jeg havde også en anden fejl, i noget kode, som intet har med det pastede at gøre, men jeg havde et forkert variabelnavn, som gjorde at det også gik skidt...
/J
Synes godt om
Ny brugerNybegynder
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.