AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

mit Zeiten rechnen / vergleichen / erkennen

Ein Thema von zzTAz · begonnen am 24. Apr 2012 · letzter Beitrag vom 25. Apr 2012
 
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#5

AW: mit Zeiten rechnen / vergleichen / erkennen

  Alt 24. Apr 2012, 22:56
Ich benötige derartige Funktionen eigentlich immer nur in Datenbanken für Massenkalkulationen, ich habe den komplizierteren Teil der Zuschlagsfindung mal exemplarisch für Delphi skizziert
Delphi-Quellcode:
uses Math;
{$R *.dfm}


Function GetLappingHours(von1,bis1,von2,bis2:TDateTime):TdateTime;
var
 von,bis:TDateTime;
begin
Result := 0;
  If (bis1>von2) and (bis1 <bis2) or ((von1>von2) and (von1<bis2)) or ((von1<=von2) and (bis1>=bis2)) then
  begin
      if Von1 >Von2 then Von := Von1 else Von := Von2;
      if Bis1 < Bis2 then Bis := Bis1 else Bis := Bis2;
      Result := RoundTo((Bis - Von) * 24,-2);
  end
end;

procedure TForm2.Button1Click(Sender: TObject);
var
v1,b1,v2,b2:TdateTime;

begin
    v1 := StrToDateTime('01.01.2012 12:00');
    b1 := StrToDateTime('01.01.2012 20:12');
    v2 := Trunc(v1) + StrToTime('18:00');
    b2 := Trunc(v2) + StrToDateTime('23:00');
    Caption := 'Stunden mit Zuschlag x%=' + FloatToStr(GetLappingHours(v1,b1,v2,b2));

end;
Generell würde ich mit TDatetimes arbeiten, ob in Array,Listen oder Tabellen ..
Zeit=Bis-Von Vorkommateil entspricht Tagen
(wobei Delphi bei der Darstellung als Datum bei 30.12.1899 beginnt ( Caption := DateToStr(0) was für die Rechnerei aber unerheblich ist)
Der Nachkommateil ist ebenfalls in Tagen zu interpretieren, also 0.5=12:00 etc.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:14 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