![]() |
Re: Zeitberechnung eigentlich simpel, aber wie?
:twisted: :mrgreen:
|
Re: Zeitberechnung eigentlich simpel, aber wie?
Hallo,
ob Abs() wirklich das geeignete Mittel ist? Zwischen den im ersten Beitrag angegebenen Zeitpunkten liegt ein Zeitraum von 3:41 h, und nicht etwas 20:19 h (vorausgesetzt, der zweite Zeitpunkt liegt hinter dem ersten). Wenn kein Datum angegeben werden soll, muß das Programm diese Intelligenz einbringen, wie es im 2. und 3. Beitrag schon angedeutet wurde:
Delphi-Quellcode:
Gruß Hawkeye
var
DT1, DT2 : TDateTime; begin DT1 := StrToTime(edFrom.Text); DT2 := StrToTime(edTo.Text); labDifference.Caption := TimeToStr(DT2 - DT1 + Ord(DT2 < DT1)); end; |
Re: Zeitberechnung eigentlich simpel, aber wie?
:gruebel: hmmm ..
ok .. habich wohl zu schnell gepostet und zu wenig gedacht :oops: |
Re: Zeitberechnung eigentlich simpel, aber wie?
meine Funktion sieht nun so aus, hab Sie Gröstenteils
übernommen:
Delphi-Quellcode:
Es hesisst ja man soll nie eine "Fremdfunktion" verwenden, wenn man nicht genau weis was da passiert...
function TFrameDaten.Act_TimeBetween(von, bis : String): TDateTime;
var H,M: integer; R: Real; start,ende: TDateTime; begin start := StrToDateTime(von); ende := StrToDateTime(bis); if start > ende then ende:= IncDay(ende); R:= HourSpan(start,ende); H:= Round(Int(R)); // Stunden M:= Round(Frac(R)* 60); // Minuten if M = 60 then begin // aus 60 Min wird 1 volle Stunde M:= 0; Inc(H); end; result := StrToDateTime(Format('%d:%.2d',[H, M])); end; na ja, also ich kappier alles voll und ganz ausser: kann mir jmd sagen was die Parameter '%d:%.2d' bei dieser Funktion GENAU machen Format('%d:%.2d',[H, M])); ?? ungefähr weisichs ja nur kanns mal jmd GANZ GENAU erklären? das würde mich beeindrucken... |
Re: Zeitberechnung eigentlich simpel, aber wie?
Zitat:
d - Dezimalwert : - TimeSeperator 2d - Dezimalwert (mind. 2-stellig; aus '5' wird bspw. '05' siehe auch ![]() ![]() LG Mario |
Re: Zeitberechnung eigentlich simpel, aber wie?
An dieser Stelle sei auch mal auf drei tolle Funktionen der Unit DateUtils hingewiesen:
Delphi-Quellcode:
Und ja, sie machen genau das, was man denkt, was sie machen könnten... :mrgreen:
function DaysBetween(const ANow, AThen: TDateTime): Integer;
function HoursBetween(const ANow, AThen: TDateTime): Int64; function MinutesBetween(const ANow, AThen: TDateTime): Int64; |
Re: Zeitberechnung eigentlich simpel, aber wie?
Hallo Daniel,
Zitat:
Gruß Hawkeye |
Re: Zeitberechnung eigentlich simpel, aber wie?
Also wenn ich das Recht verstehe soll er sagen ob zweischen Datum1 und Datum 2 ein Tagwechsel vorliegt oder?
Ich würde das so machen
Delphi-Quellcode:
if (Trunc(Datum1)<Trunc(Datum2))then
ShowMessage('Es liegt ein Tagwechsel vor') else ShowMessage('Die beide Daten sind am gleichen Tag'); |
Re: Zeitberechnung eigentlich simpel, aber wie?
Zitat:
|
Re: Zeitberechnung eigentlich simpel, aber wie?
Tach ...,
Zitat:
Delphi-Quellcode:
if start > ende then
ende:= IncDay(ende); Zitat:
[oh]function HourSpan(const ANow, AThen: TDateTime): Double;[/oh] LG Mario |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:33 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