AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Zeitinterval in Millisekunden.... [erledigt] :-)
Thema durchsuchen
Ansicht
Themen-Optionen

Zeitinterval in Millisekunden.... [erledigt] :-)

Ein Thema von SeeAALi · begonnen am 29. Mär 2010 · letzter Beitrag vom 30. Mär 2010
Antwort Antwort
Seite 1 von 2  1 2      
SeeAALi

Registriert seit: 21. Jan 2010
21 Beiträge
 
#1

Zeitinterval in Millisekunden.... [erledigt] :-)

  Alt 29. Mär 2010, 23:22
.....,aber in Minuten und Sekunden anzeigen lassen.

hi,

so habe nun etliche seiten hier im forum durchforstet, aber irgendwie find ich nicht das richtige.
Oder ich überlese es irgendwie.

Also folgendes, ich habe einen Zeitinterval in Millisekunden. Den möchte ich gerne mir in Minuten und Sekunden per
Timer anzeigen lassen. Quasi ein Countdown.
Alles was ich bis jetzt aber hier gefunden habe, nutzt in irgendeiner Art und Weise TDatetime o.ä. Ich habe aber nur diese Zeitspanne, wann es los geht und wann es endet, ist mir eigentlich völlig egal.

Ich will eigentlich nur die viele Schreibarbeit vermeiden, die kommt wenn ich mit If then anfange, und mir aus den
Millisekunden dann die Minuten und sekunden ausrechne.

Da gibt es doch bestimmt was einfaches, oder nicht?!

mfg SeeAALi


ich seh mich schon bei den ersten antworten da entgeistert sitzen , und denk mir bestimmt "das hast du doch schon mal gesehen"
  Mit Zitat antworten Zitat
blink182

Registriert seit: 19. Jun 2007
126 Beiträge
 
Delphi 5 Standard
 
#2

Re: Zeitinterval in Millisekunden....

  Alt 29. Mär 2010, 23:38
wie wärs mit einer einfachen Division?
Sekunde einfach durch 1000 teilen und Minute halt durch 60000?
bzw wenn du es halt in Minuten haben und Sekunden haben willst, musst du den Rest (modulo) Minuten noch berücksichtigen
  Mit Zitat antworten Zitat
SeeAALi

Registriert seit: 21. Jan 2010
21 Beiträge
 
#3

Re: Zeitinterval in Millisekunden....

  Alt 30. Mär 2010, 00:12
hatte mich wohl nicht so klar ausgedrückt

will das ganze halt als quasi countdown haben. per timer und einer sekunde genauigkeit.
soll halt von meinen millisekunden die ich habe, auf 0 runterzählen.
das runterzählen, soll ja nun nicht das prob sein, nur halt die anzeige, ohne das ich jetzt wirklich den ganzen mist
mit verschachtelten if then machen muss..

if minute > 59 then ...... sowas möcht ich ja eigentlich nicht haben.






p.s. mir ist grad eine idee eingefallen, werd sie aber erst morgen testen. für weiter anregungen bin ich aber dankbar
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#4

Re: Zeitinterval in Millisekunden....

  Alt 30. Mär 2010, 00:20
Dann schreib doch mal auf, wie das auf der Anzeige aussehen soll.

Weil klar ist das immer noch nicht (wenn die erste Antwort nicht zutrifft).

Also, was soll denn z.B. bei 9000ms Restzeit auf der Anzeige zu sehen sein:

das -> 00:00:09

so wie rechnet man das jetzt in einen Datetimewert um?
Delphi-Referenz durchsuchenEncodeTime
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
SeeAALi

Registriert seit: 21. Jan 2010
21 Beiträge
 
#5

Re: Zeitinterval in Millisekunden....

  Alt 30. Mär 2010, 04:45
also habe 602000ms, was genau 10minuten und 2 sekunden entspricht.

encodetime habe ich auch schon gefunden, aber die obergrenze für ms sind 999. und wenn ich das richtig verstanden habe, gibt mir ja encodetime ja eine zeit aus , und ich habe ja im prinzip nur eine differenz.

und wegen der anzeige, hatte doch schon geschrieben, das ich dann nur minuten und sek haben will, z.b. 9:23min

hatte jetzt überlegt, wenn ich jetzt pro timer aufruf, halt einfach 1000ms abziehe und dann halt zu fuss mir min und sek berechne.

also nciht vorher umrechnen und dann abziehen, sondern erst die sekunde weniger und dann umrechnen.

so , hoffe ich habe mich um kurz vor 5 noch klar genug ausdrücken können


mfg SeeAALi
  Mit Zitat antworten Zitat
samso

Registriert seit: 29. Mär 2009
439 Beiträge
 
#6

Re: Zeitinterval in Millisekunden....

  Alt 30. Mär 2010, 07:10
Also, Du hast die Zeit im Millisekunden (hier t). Wenn Du diese Zahl durch die Anzahl der Millisekunden pro Tag teilst, erhältst Du den passenden TDatetime-Wert. Der Bezugswert ("wann es los geht und wann es endet, ist mir eigentlich völlig egal.") spielt dabei keine Rolle (die Tagesanzahl bleibt einfach Null). Die Funktion "TimeToStr" wandelt Deine Millisekunden in einen String. DecodeTime wandelt in die Einzelkomponenten.

Delphi-Quellcode:
TimeToStr(t/MSecsPerDay);
DecodeTime(t/MSecsPerDay, h, m, s, ms);
  Mit Zitat antworten Zitat
angos

Registriert seit: 26. Mai 2004
Ort: Rheine
549 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: Zeitinterval in Millisekunden....

  Alt 30. Mär 2010, 07:12
oder so:


602000 / 1000 = 602 Sekunden

602 / 60 = 10 Minuten (Rest 2 entspricht den Sekunden)

Das ist doch wirklich nur einfaches Mathe . Da brauchst du keine Datumsfunktionen oder irgendetwas spezielles.

Minuten := 602000 div 60000
Sekunden := Trunc((602000 mod 60000) / 1000)


Gruß
angos
Ansgar
  Mit Zitat antworten Zitat
oldmax

Registriert seit: 27. Apr 2006
Ort: Gieboldehausen
167 Beiträge
 
#8

Re: Zeitinterval in Millisekunden....

  Alt 30. Mär 2010, 07:18
Hi
Wenn du es etwas "universeller" brauchst, dann rechne deine Zielzeit aus und Ziehe davon die aktuelle Zeit ab. Da das Zeitformat einer Real entspricht, dürfte es kein allzugroßes Problem sein...
Gruß oldmax
Noch ist mein Rechner mir zu Diensten.... ansonsten habe ich die Macht ihn zu vernichten !
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#9

Re: Zeitinterval in Millisekunden....

  Alt 30. Mär 2010, 07:38
Delphi-Quellcode:
Function MilliSecsToTimeString (aMilliSecs : Cardinal) : String;
Var
  h,m,s : Word;

Begin
  s := (aMilliSecs div 1000) mod 60;
  m := ((aMilliSecs div 1000) div 60) mod 60;
  h := ((aMilliSecs div 1000) div 60) div 60;
  Result := Format('%d:%.2d:%.2d',[h,m,s]);
End;
So irgendwie. Ungetestet.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
SeeAALi

Registriert seit: 21. Jan 2010
21 Beiträge
 
#10

Re: Zeitinterval in Millisekunden....

  Alt 30. Mär 2010, 08:15
danke alzaimar

hab ich doch wieder was gelernt

ich hätte es etwas komplizierter geschrieben, aber nur unwesentlich
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:00 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz