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 guinnes
guinnes

Registriert seit: 28. Feb 2007
Ort: Bottrop
265 Beiträge
 
Delphi 5 Enterprise
 
#8

AW: mit Zeiten rechnen / vergleichen / erkennen

  Alt 25. Apr 2012, 16:07
An etwas ähnlichem sitze ich zur Zeit auch, nur gehe ich da einen Objektorientierten Ansatz : Eine Klasse, die Zeitabschnitte verwaltet und Schnittmengen aus 2 Zeiträumen ziehen kann :
Delphi-Quellcode:
{-----------------------------------------------------------------------------
  Classname : TTimespan
  Autor    : e310hel001
  Datum    : 17-Apr-2012
  Aufgabe  : Hält einen Zeitabschnitt
-----------------------------------------------------------------------------}

  TTimespan = class
  private
    FStart : TDateTime;
    FStop : TDateTime;
    function GetTimespan: TDateTime;
    procedure SetStop(const Value: TDateTime);
    procedure SetStart(const Value: TDateTime);
  public
    property Start : TDateTime read FStart write SetStart;
    property Stop : TDateTime read FStop write SetStop;
    property Timespan : TDateTime read GetTimespan;
    function IntersectTime ( aTimeSpan : TTimeSpan) : TDateTime;
  end;

{ TTimespan }

function TTimespan.GetTimespan: TDateTime;
begin
  Result := Stop - Start;
end;

procedure TTimespan.SetStop(const Value: TDateTime);
begin
  FStop := Value;
end;

procedure TTimespan.SetStart(const Value: TDateTime);
begin
  FStart := Value;
// Stop auf Now setzen, damit ein Gültiger Wert für den Laufenden Zeitraum
// vorhanden ist, auch wenn im Zeitraum kein Stop mehr kommt
  Stop := Now;
end;

function TTimespan.IntersectTime(aTimeSpan: TTimeSpan): TDateTime;
begin
  Result := Min(Stop,aTimeSpan.Stop) - Max(Start,aTimeSpan.Start);
end;
In die eine Timespan kommen Arbeitsbeginn und Arbeitsende, Timespan leifert dann die Arbeitszeit.
In eine andere z.B. 18.00 Uhr als Start und 20.00 Uhr als Ende. IntersectTime liefert dann die Zeitspanne, für die Zuschläge gezahlt werden müßen. Gleiches gilt z.B. auch für Pausen
Glückauf
  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 13:34 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 by Thomas Breitkreuz