![]() |
Uhrzeiten Addieren?
Hallo Alle!
Wie kann man mit Delphi Uhrzeiten Addieren. ZB. 00:60 Sek. + 00:45 Sek. Bei mir kommt da immer 01:05 raus. Richtig ist aber 01:45. Gruß Heike |
Re: Uhrzeiten Addieren?
Beide Werte in das Zeitformat umwandeln dann addieren und wieder in einen String umwandeln.
StrToTime könnte hier hilfreich sein. Grüße Klaus |
Re: Uhrzeiten Addieren?
Von welchen typ sind denn die Uhrzeiten bei TTime sollte es eigentlich gehen.
Delphi-Quellcode:
showmessage(TimeToStr(TTimeWert1 + TTimeWert2));
|
Re: Uhrzeiten Addieren?
Zitat:
Das hatte ich auch schon versucht:
Delphi-Quellcode:
oder
showmessage(TimeToStr('00:30:00' + '00:30:00'));
Delphi-Quellcode:
oder
showmessage(TimeToStr('00:30.00' + '00:30.00'));
Delphi-Quellcode:
Dabekomme ich immer ne Fehlermeldung vom Type:
showmessage(TimeToStr('00:30' + '00:30'));
Inkompatible Typen: 'TDateTime' und 'String' Gruß Heike |
Re: Uhrzeiten Addieren?
Delphi-Quellcode:
showmessage(TimeToStr(StrToTime('00:30') + StrToTime('00:30')));
|
Re: Uhrzeiten Addieren?
Zitat:
Gruß Heike |
Re: Uhrzeiten Addieren?
Dass bei 00:30 + 00:45 1:05 rauskommt liegt einfach daran, dass die letzte Stelle einer TTime variable nicht Sekunden sondern Millisekunden angibt
|
Re: Uhrzeiten Addieren?
Zitat:
wenn Du die Zeiten so addieren willst, müssen die sie als TTime vorliegen also als Floatwert. Du kannst Deine Stringwerte "00:00:30" aber mit StrToTime konvertieren. Grüße Klaus |
Re: Uhrzeiten Addieren?
Ist es auch möglich, das ganze als Integer um zu wandeln?
Z.B.
Delphi-Quellcode:
Als Integer
TimeToStr(StrToTime(Zeit));
Delphi-Quellcode:
Geht nicht.
StrToInt(TimeToStr(StrToTime(Zeit)));
Gruß Heike |
Re: Uhrzeiten Addieren?
Nein das geht nicht
TTime, TDate und TDateTime sind immer Float-Werte und nicht mit Integer kompatibel Was genau möchtest du den erreichen? |
Re: Uhrzeiten Addieren?
Zitat:
Gruß Heike |
Re: Uhrzeiten Addieren?
TDateTime ist ein Floatwert,
Wobei der Dezimalwert die Tage angibt und der Dezimalbruch den Bruchteil eines Tages. Mit frac läßt sich der Dezimalbruch aus dem Floatwert heraustrennen. Damit und mit einer Konstante (1000 oder so) zum Multiplizieren sollte sich dann ein Scrollbalken oder Progressbar betreiben lassen. Grüße Klaus |
Re: Uhrzeiten Addieren?
Zur Not kannst du es übe StringList und Delimited String machen
Delphi-Quellcode:
sollte so klappen, auch wenns sicher eleganter geht ^^var Sekunden:Integer; Buffer: TStringList; begin Buffer := TStringList.Create; try Buffer.Delimiter := ':'; Buffer.DelimitedText := '5:30'; //hier kommt dann halt deine stringvariable hin Sekunden := (StrtoInt(Buffer.Strings[0]) * 60 ) + StrToInt(Buffer.Strings[1]); finally Buffer.free; end; end; |
Re: Uhrzeiten Addieren?
Also um aus "5:20" "320" zu machen kannst Du folgendes nutzen:
Delphi-Quellcode:
var h,m,s,msec : Word; zeit : String; begin Zeit := '5:20'; decodetime(StrToTime(zeit),h,m,s,msec); showmessage(Inttostr(h*60 + m)); // sind 320 Minuten end; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:45 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