![]() |
Datum in Integer umwandeln
Hi,
ich würde gerne eine Uhrzeit in Integer, anstatt in string umwandeln. Die normale Funtkion "timeToStr( time() );" gibt es mir nur als string aus. Wie kann ich denn zwei Uhrzeiten voneinander abziehen? Die Punkte im Datum führen ja sicherlich zu einem ungültigem Interger Wert. Danke schonmal :) |
Re: Datum in Integer umwandeln
Der TDateTime Wert ist eigentlich eine Fließkommazahl.
Der Teil vor dem Komma ist das Datum, die Nachkommastellen sind die Uhrzeit. Deswegen kannst Du zwei TDateTime-Werte auch direkt voneinander abziehen. |
Re: Datum in Integer umwandeln
Du kannst Dir ja auch einmal
![]() |
Re: Datum in Integer umwandeln
Hai N20N,
ich werfe mal einfach einige Funktionsnamen in den Raum ;-)
Delphi-Quellcode:
// Aus DateUtils. Weiss aber nicht ab welcher Delphiversion vorhanden
DaysBetween() MonthsBetween() YearsBetween() HoursBetween() MinutesBetween() SecondsBetween() // Aus SysUtils EncodeDate() DecodeDate() |
Re: Datum in Integer umwandeln
Okay, mittlerweile hab iche s hinbekommen zwei Uhrzeiten voneinander abzuziehen.
Delphi-Quellcode:
procedure TForm1.FormCreate(Sender: TObject);
begin edit1.Text := timeToStr( time() ); end; procedure TForm1.Button1Click(Sender: TObject); var Zeit : tdatetime; Zeit2 : tdatetime; Ergebniss :tdatetime; begin Zeit := strtotime(edit2.Text); Zeit2 := strtotime(edit1.Text); Ergebniss := Zeit - Zeit2; edit3.Text := timetostr(Ergebniss) end; Eventuell etwas umständlich, aber es funktioniert ^^ So, nun müsst ich mein Ergebniss nur noch ordentlich umwandeln können, so dass ich zum Beispiel Stunden, Minuten und Sekunden in Variablen speichern kann. Ich will als Endergebniss die Zeit die verbleibt als Sekunden haben. Wie stell ich das jetzt an? |
Re: Datum in Integer umwandeln
Wenn Du 2 TDateTime voneinander abziehst, hast Du die Differenz in Tagen. Mit 24 multipliziert ergibt das die Differenz in Stunden. Diese mit 60 multipliziert ergibt die Differenz in Minuten. Wie kommt man nun auf Sekunden? :zwinker:
|
Re: Datum in Integer umwandeln
Zitat:
Wenn ich zum Beispiel rechne: 10:40:00 - 10:30:00, dann kommt da 00:10:00 raus. Durch multiplizieren mit 60 hätte ich dann den Wert in Sekunden. Doch wie genau multipliziere ich jetzt einen Wert mit Doppelpunkten mit 60? Ausserdem müsste ich ja dann irgendwie die Stunden / Minuten und Sekunden voneinander trennen, da ich ja nicht das komplette Ergebniss * 60 nehmen kann. Wie stell ich das an? :( |
Re: Datum in Integer umwandeln
z.B. mit
![]() Guck Dir in der Onlinehilfe mal die ganzen Sachen in der Kategorie Datum/Zeit an. |
Re: Datum in Integer umwandeln
Zitat:
Zitat:
Schau Dir mal dies Beispiel an:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var Start, Ende, Differenz, DiffInSek: TTime; begin Start := StrToTime('10:20:00'); Ende := StrToTime('12:50:10'); Differenz := Ende - Start; DiffInSek := Differenz * 24 * 60 * 60; ShowMessage(FormatDateTime('hh:nn:ss',Differenz) + #13#10 + Format('Enspricht %.0f Sekunden',[DiffInSek])); end; |
Re: Datum in Integer umwandeln
Zitat:
Delphi-Quellcode:
? :)
SecondsBetween()
|
Re: Datum in Integer umwandeln
Da war aber auch was mit
Zitat:
Außerdem ist es IMHO Blödsinn, für so eine einfache Berechnung noch eine Unit einzubinden, geht doch auch so. [edit] Falschen Urheber korrigiert [/edit] |
Re: Datum in Integer umwandeln
So fett ist DateUtils dann nun auch nicht, ausserdem braucht man Code den man nicht selber schreibt, auch nicht so intensiv testen ;) Drittens sind sprechende Namen immer wieder sinnvoll. Ausserdem bleibts nicht selten nicht bei der einen Berechnung...
|
Re: Datum in Integer umwandeln
Bevor wir uns noch streiten, schlage ich vor, es nun dabei bewenden zu lassen. Schließlich muss der TE wissen, was er nun machen möchte, die Logik sowie entsprechende Funktionen sind ihm ja nun an die Hand gegeben. :cheers:
|
Re: Datum in Integer umwandeln
Von Streit kann keine Rede sein, prost auch :) *gaehn* ist das schon wieder spät :(
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:11 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz