AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi "tickende" uhr mit nur einer zeitmessung
Thema durchsuchen
Ansicht
Themen-Optionen

"tickende" uhr mit nur einer zeitmessung

Ein Thema von s-konto · begonnen am 4. Apr 2007 · letzter Beitrag vom 5. Apr 2007
Antwort Antwort
Seite 1 von 2  1 2      
s-konto

Registriert seit: 4. Apr 2007
Ort: München
5 Beiträge
 
#1

"tickende" uhr mit nur einer zeitmessung

  Alt 4. Apr 2007, 18:50
ok, das problem ist folgendes:
soetwas wie hier ist sehr einfach:
http://noebis.pi-noe.ac.at/delphi/kapitel13.htm

es wird einfach die funktion time bzw. gettime benutzt und mittels TimeToStr() in einem label ausgegeben.
mein problem ist: ich bekomme nur einen einzigen string in diesem format: "YY/MM/DD,hh:mm:ss" wobei mir der erste teil mit dem datum relativ egal ist.
wie lässt sich der text hinter dem komma ausgeben?

so, wenn die uhrzeit extrahiert ist, muss ich das ganze in dieses TDateTime konvertieren. wie lässt sich also z.B. "12:00:00" in das TDateTime Format umwandeln?
jetz wirds schwer. ich hab nen timer mit interval 1000(=1sek) jetzt muss ich jedesmal eine sekunde dazurechnen. aber wie mach ich das mit diesem komischen format TDateTime? um rechnen zu können muss ich ja erstmal in float konvertieren oder geht das anders?

ich weiss, is ein bisserl kompliziert, bin froh, wenn ihr lösungen von teilproblemen habt.
  Mit Zitat antworten Zitat
Benutzerbild von bitsetter
bitsetter

Registriert seit: 17. Jan 2007
1.169 Beiträge
 
Turbo Delphi für Win32
 
#2

Re: "tickende" uhr mit nur einer zeitmessung

  Alt 4. Apr 2007, 23:56
Hi,

Zitat von s-konto:
ich weiss, is ein bisserl kompliziert,
ja da hast du recht

Zitat von s-konto:
mein problem ist: ich bekomme nur einen einzigen string in diesem format: "YY/MM/DD,hh:mm:ss" wobei mir der erste teil mit dem datum relativ egal ist.
wie lässt sich der text hinter dem komma ausgeben?
Delphi-Quellcode:
var
  s: String;
begin
  s:= 'YY/MM/DD,hh:mm:ss';
  caption:= Copy(s, length(s)- 7, 8);
Zitat von s-konto:
so, wenn die uhrzeit extrahiert ist, muss ich das ganze in dieses TDateTime konvertieren. wie lässt sich also z.B. "12:00:00" in das TDateTime Format umwandeln?
Delphi-Quellcode:
var
  d: TDateTime;
begin
  d:= StrToTime('12:00:00');
Zitat von s-konto:
ich hab nen timer mit interval 1000(=1sek) jetzt muss ich jedesmal eine sekunde dazurechnen. aber wie mach ich das mit diesem komischen format TDateTime? um rechnen zu können muss ich ja erstmal in float konvertieren oder geht das anders?
eventuell hiermit:
Delphi-Quellcode:
var
  d: TDateTime;
begin
  TryEncodeTime(12,0,2,0,d);
  Caption := TimeToStr(d);
Gruß bitsetter
"Viele Wege führen nach Rom"
Wolfgang Mocker (geb. 1954), dt. Satiriker und Aphoristiker
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

Re: "tickende" uhr mit nur einer zeitmessung

  Alt 4. Apr 2007, 23:59
Um die Stichworte zu vervollständigen:
EncodeTime, EncodeDate
DecodeTime, DecodeDate
TimeToStr, StrToTime
DateToStr, StrToDate

Desweiteren sollte man die lokalen Einstellungen brücksichtigen. Mein Datumsformat ist zum Beispiel yyyy-mm-dd.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#4

Re: "tickende" uhr mit nur einer zeitmessung

  Alt 5. Apr 2007, 02:04
... FormatDateTime, IncMilliSecond, IncSecond, IncMinute, IncIrgendwas kann man auch noch nennen.
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: "tickende" uhr mit nur einer zeitmessung

  Alt 5. Apr 2007, 06:32
Zitat von s-konto:
ok, das problem ist folgendes:
[...]
mein problem ist: ich bekomme nur einen einzigen string in diesem format: "YY/MM/DD,hh:mm:ss" wobei mir der erste teil mit dem datum relativ egal ist.
[...]
Hmmm, wäre da die Funktion FormateDateTime() nicht angebracht oder habe ich da was falsch verstanden ??? Zum Beispiel (Code aus einer meiner Komponenten)...

Delphi-Quellcode:
    Caption := TimeToStr(now);
    Caption := DateToStr(now) + ' ' + FormatDateTime('hh:nn', now);
    Caption := FormatDateTime('d. mmmm yyyy' + ' ' + 'hh:nn', now);
    Caption := FormatDateTime('dddd, d. mmmm yyyy', now);
    Caption := FormatDateTime('dddd, d. mmmm yyyy' + ' ' + 'hh:nn', now);

Zitat von s-konto:
jetz wirds schwer. ich hab nen timer mit interval 1000(=1sek) jetzt muss ich jedesmal eine sekunde dazurechnen. aber wie mach ich das mit diesem komischen format TDateTime? um rechnen zu können muss ich ja erstmal in float konvertieren oder geht das anders?
Evtl. könntest Du einen Umweg über einen Zeitstempel (Unix Time Stamp) machen. Hier kannst Du einfach Sekunden addieren und danach wieder in einen TDateTime umwandeln...

Delphi-Quellcode:
const
  UnixStartDate: TDateTime = 25569.0;

VAR TimeZone : Integer; // 1 (für Berlin...)
[...]

function DateTimeToUnix(Datum: TDateTime) : Integer;
begin
  Result := Round((Datum - UnixStartDate) * 86400) - 3600 - (3600*TimeZone);
end;

function UnixToDateTime(Timestamp: Integer) : TDateTime;
begin
  Result := ((Timestamp+3600+TimeZone*3600) / 86400) + UnixStartDate;
end;
SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#6

Re: "tickende" uhr mit nur einer zeitmessung

  Alt 5. Apr 2007, 07:37
Zitat von s-konto:
ok, das problem ist folgendes:
soetwas wie hier ist sehr einfach:
http://noebis.pi-noe.ac.at/delphi/kapitel13.htm

es wird einfach die funktion time bzw. gettime benutzt und mittels TimeToStr() in einem label ausgegeben.
mein problem ist: ich bekomme nur einen einzigen string in diesem format: "YY/MM/DD,hh:mm:ss" wobei mir der erste teil mit dem datum relativ egal ist.
wie lässt sich der text hinter dem komma ausgeben?

so, wenn die uhrzeit extrahiert ist, muss ich das ganze in dieses TDateTime konvertieren. wie lässt sich also z.B. "12:00:00" in das TDateTime Format umwandeln?
jetz wirds schwer. ich hab nen timer mit interval 1000(=1sek) jetzt muss ich jedesmal eine sekunde dazurechnen. aber wie mach ich das mit diesem komischen format TDateTime? um rechnen zu können muss ich ja erstmal in float konvertieren oder geht das anders?

ich weiss, is ein bisserl kompliziert, bin froh, wenn ihr lösungen von teilproblemen habt.
Du denkst zu kompliziert.

Benutze einen TTimer, den stellst Du auf 1000 ms.
Im OnTimer-Ereignis des Timers holst Du Dir die Zeit mit getTime. Diese wandelst Du mit TimeToStr oder FormatDateTime in das gewünschte Format um. Anschliessend zeigst Du die Zeit im Label an.
Viel schneller, ohne Rechnen und super simpel.

Hilfe zu diesen Funktionen findest Du in der Delphi-Hilfe.

Programmieren musst Du das aber noch selber...
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Nachteule

Registriert seit: 22. Mär 2007
Ort: München
37 Beiträge
 
Delphi 2009 Enterprise
 
#7

Re: "tickende" uhr mit nur einer zeitmessung

  Alt 5. Apr 2007, 07:46
ganz ohne timer und supereinfach:


Delphi-Quellcode:

var
    startzeit, stopzeit: TTime;

begin
  startzeit := now;
  // irgendetwas ausführen

  stopzeit := now;

  StatusBar1.Panels[1].Text := formatdatetime('hh:nn:ss:zzz', (stopzeit -
    startzeit));

end;
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#8

Re: "tickende" uhr mit nur einer zeitmessung

  Alt 5. Apr 2007, 10:17
Zitat von scrat1979:
Zitat von s-konto:
jetz wirds schwer. ich hab nen timer mit interval 1000(=1sek) jetzt muss ich jedesmal eine sekunde dazurechnen. aber wie mach ich das mit diesem komischen format TDateTime? um rechnen zu können muss ich ja erstmal in float konvertieren oder geht das anders?
Evtl. könntest Du einen Umweg über einen Zeitstempel (Unix Time Stamp) machen. Hier kannst Du einfach Sekunden addieren und danach wieder in einen TDateTime umwandeln...
Oh ja. Wie wärs stattdessen mit IncSecond? ^^
  Mit Zitat antworten Zitat
Benutzerbild von scrat1979
scrat1979

Registriert seit: 12. Jan 2007
Ort: Sulzbach a.d. Murr
1.028 Beiträge
 
Delphi 10.4 Sydney
 
#9

Re: "tickende" uhr mit nur einer zeitmessung

  Alt 5. Apr 2007, 11:25
Zitat von Nuclear-Ping:
Zitat von scrat1979:
Evtl. könntest Du einen Umweg über einen Zeitstempel (Unix Time Stamp) machen. Hier kannst Du einfach Sekunden addieren und danach wieder in einen TDateTime umwandeln...
Oh ja. Wie wärs stattdessen mit IncSecond? ^^
Sorry, habe ich gar nicht gekannt . Sehe grad, der Begriff ist weiter oben ja schon gefallen - Schande über mich. Schon wieder etwas gelernt....

Ehrlich gesagt, weiß ich auch gar nicht so recht, was der Threadersteller genau möchte. Für eine reine Zeitmessung würde ich die Lösung von Nachteule nehmen. Soll es eher eine "Uhr" werden, wird wohl ein Timer - Beispiele sind ja jetzt genug da - eher in Frage kommen.

SCRaT
Michael Kübler
  Mit Zitat antworten Zitat
Nuclear-Ping
(Gast)

n/a Beiträge
 
#10

Re: "tickende" uhr mit nur einer zeitmessung

  Alt 5. Apr 2007, 11:39
Du hättest mich mal erleben sollen, als ich von TDateTime und dessen Hilfsfunktionen noch nichts wußte. Da hab ich auch schlimme Sachen mit Strings angestellt ...
  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:10 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