![]() |
Zeitberechnung
hi @ all
in einem programm muss ich mir immer denn nächsten lauf einer prozedur errechnen... ich hab mir mal so auf die schnelle ne eigenen funktion geschrieben in der ich auf die aktuelle uhrzeit eine bestimmte anzahl von minuten hinzu addiere.... hier erst mal der code (funktioniert einwandfrei... is aber noch ausbaufähig):
Delphi-Quellcode:
wollt jetzt nur mal nachfragen, obs net schon ne funktion von delphi gibt die genau das oder so ähnlich macht????
function TMain_Form.fnAddTime() : String;
var sH, sM, sS, sTime : String; iH, iM : Integer; begin sTime := FormatDateTime('HH:MM:SS', Time); sH := Copy(sTime, 1, 2); sM := Copy(sTime, 4, 2); sS := Copy(sTime, 7, 2); iM := StrToInt(sM); iM := iM + 10; If iM >= 60 Then Begin iM := iM - 60; iH := StrToInt(sH); iH := iH + 1; If iH = 25 Then Begin iH := 01; sH := IntToStr(iH); If iH < 10 Then Begin sH := '0' + sH; End; End; End; sM := IntToStr(iM); If iM < 10 Then Begin sM := '0' + sM; End; sTime := sH + ':' + sM + ':' + sS; fnAddTime := sTime; end; :dp: |
Re: Zeitberechnung
Hallo,
warum so umständlich? Das geht im Prinzip viel einfacher. DateTime und konsorten speichern den Zeitanteil im Nachkomma-Anteil der Variable. Wobei 0 = 0 Uhr und 1 = 24 Uhr entspricht. Laut dieser Festlegung entspricht 1 Stunde = 1/24 = 0,041666. Eine Minute wäre in diesem Fall 1/24/60.
Delphi-Quellcode:
function AddMinuten(const aDate:TDateTime; aMinuten:Integer):TDateTime;
begin Result:=aDate+aMinuten/24/60; end; ... ... ShowMessage(TimeToStr(AddMinuten(Now, 10)); |
Re: Zeitberechnung
^^
ok hätte ich das früher gewusst, dann hätte ichs wahrscheinlich auch so gemacht... danke für denn tipp... |
Re: Zeitberechnung
Warum so umständlich? Das geht im Prinzip noch einfacher ;)
IncMinute(Now, 10) |
Re: Zeitberechnung
Hallo,
Zitat:
Dann hättest Du aber dazuschreiben sollen, dass man zu Deinem Tipp die Unit DateUtils benötigt. Diese gib es aber erst seit Delphi 6. |
Re: Zeitberechnung
ja ok, ich hab ja delphi 2005 professional ^^ von daher würds ja gehen...
naja in dem programm was ich gerade mach werd ich meine funktion mal drinne lassen, aber für die zukunft ises gut zu wissen das es sowas gibt thx @ all |
Re: Zeitberechnung
@Gollum: Den Vorschlag habe ich deshalb gemacht, da er ja De2005 einsetzt und dies dort vorhanden ist. Und as mit dateutils - F1 ist ja wohl bekannt.
Ich habe früher auch oft solche Routinen mit 24/60 etc. verwendet, bin aber davon abgekommen. Jetzt läßt sich damit sehr schön rechnen, aber was ist, wenn in einer künftigen Version keine Double-Werte merh verwendet werden? Ich gehe davon aus, dass eine IncMinute Funktion immer das tut was sie soll, selbst wenn sich der Typ von TDateTime einmal ändern sollte. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 06:19 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