![]() |
Zeit in Sekunden umrechnen
Für diejenigen die es brauchen könnten...
Mit dieser Funktion kann man eine Zeit in Sekunden umrechnen:
Code:
Wahrscheinlich gibt es dafür eine hauseigene Funktion, doch bevor ich stundenlange suche und probiere, habe ich selbst diese kleine Funktion geschrieben. Wollte das in die CodeLibrary schreiben, habe dort aber keine Schreibrechte.
function Zeit_In_Sekunden_Umwandeln(std_min_sek:string): integer;
{ Rechnet eine Zeit im Format Std:mm:ss in Sekunden um. Beispiel: ShowMessage( IntToSTr( Zeit_In_Sekunden_Umwandeln('0:10:00') )); // 10 min, result 600 (sekunden} //SH var zeit : TStringList; begin zeit := TStringList.Create; zeit.Delimiter:=':';; zeit.DelimitedText:=std_min_sek; result := StrToInt(zeit[0])*60*60+StrToInt(zeit[1])*60+StrToInt(zeit[2]); end; LG Monday |
AW: Zeit in Sekunden umrechnen
Delphi-Quellcode:
function Zeit_In_Sekunden_Umwandeln(std_min_sek:string): integer;
{ Rechnet eine Zeit im Format Std:mm:ss in Sekunden um. Beispiel: ShowMessage( IntToSTr( Zeit_In_Sekunden_Umwandeln('0:10:00') )); // 10 min, result 600 (sekunden} //SH var zeit : TStrings; begin Result := 0; zeit := TStringList.Create; try zeit.Delimiter:=':';; zeit.DelimitedText:=std_min_sek; result := StrToInt(zeit[0])*60*60+StrToInt(zeit[1])*60+StrToInt(zeit[2]); finally zeit.free; end; end; |
AW: Zeit in Sekunden umrechnen
Moin...:P
Hier drängt sich erst einmal eine grundsätzliche Frage auf. Warum arbeitest du für die Zeitwerte mit string? Programmintern sollte man immer mit TDateTime arbeiten. Der formatierte String ist dann nur für die Darstellung da. Sekunden zwischen 2 DateTime Werten: bei dir dein Wert und 0 ![]() |
AW: Zeit in Sekunden umrechnen
Na ja, manchmal ergibt sich schon die Situation, aus einem formatierten String zurück zu TDateTime rechnen zu müssen. Z.B. Importfunktionen aus Textdateien usw.
Ich wollte eigentlich (ohne Kommentar) nur auf die Speicherleiche und die fehlenden Delphi-Tags hinweisen. |
AW: Zeit in Sekunden umrechnen
Aber dafür drängt sich doch
Delphi-Quellcode:
auf?
StrToTime
Das Ergebnis multipliziert man mit
Delphi-Quellcode:
und ist fertig :stupid:
SecsPerDay
|
AW: Zeit in Sekunden umrechnen
Zitat:
Delphi-Quellcode:
. :stupid:
SecsPerDay
|
AW: Zeit in Sekunden umrechnen
Zitat:
Delphi-Quellcode:
oder
function SecondsFromTime( ATime: TTime ) : Integer;
begin Result := ATime * 86400; end; function SecondsFromTimeStr( const ATimeStr: string ):Integer; begin Result := SecondsFromTime( StrToTime( ATimeStr ) ); end;
Delphi-Quellcode:
Wo hat der unbedarfte Leser wohl schneller die Funktionsweise erfasst?
function SecondsFromTime( ATime: TTime ) : Integer;
begin Result := ATime * SecsPerDay; end; function SecondsFromTimeStr( const ATimeStr: string ):Integer; begin Result := SecondsFromTime( StrToTime( ATimeStr ) ); end; Ja, man kann natürlich für die Lesbarkeit einen Kommentar schreiben
Delphi-Quellcode:
wir vergleichen nochmal mit
function SecondsFromTime( ATime: TTime ) : Integer;
begin Result := ATime * { Sekunden pro Tag } 86400; end;
Delphi-Quellcode:
Huch, documented by code
function SecondsFromTime( ATime: TTime ) : Integer;
begin Result := ATime * SecsPerDay; end; Und wo können sich beim Tippen wohl eher Fehler einschleichen? Darum keine magic values im Code ;) |
AW: Zeit in Sekunden umrechnen
Ja die Funktion ist tatsächlich entstanden aus dem Import von Textdateien. In den meisten Textdateien wird die Zeit (= gestoppte Zeit einer Anwendung) in Sekunden angezeigt und in manchen anderen wird sie in xx:xx:xx angezeigt. Und ich entschied mich alles in sekunden umzurechnen.
|
AW: Zeit in Sekunden umrechnen
Und damit jetzt nicht wieder jemand mit dem Pluto Beispiel ankommt nennen wir die Konstante: SECSPEREARTHDAY :mrgreen:
|
AW: Zeit in Sekunden umrechnen
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:12 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