Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Plausibiltät auf einen Zeitraum von eine Jahr (https://www.delphipraxis.net/136015-plausibiltaet-auf-einen-zeitraum-von-eine-jahr.html)

Eppos 22. Jun 2009 09:20


Plausibiltät auf einen Zeitraum von eine Jahr
 
Hallo zusammen,

ich stehe vor folgendem Problem:
Es gibt die Möglichkeit in meinem Programm einen Zeitraum zu wählen.
Nun muss dieser Zeitraum einmal geprüft werden, das er genau ein Jahr ergibt z.B. 01.01.2009 - 31.12.2009
Und das beim anlegen keine Zeitraum überschneidung gibt z.B. Datensatz 1: 01.01.2009 - 31.12.2009; Datensatz 2: 01.12.2009 - 30.11.2010

Hat jemand eine Idee, wie ich das einfach überprüfen kann?

Vielen Dank

Eppos

mkinzler 22. Jun 2009 09:23

Re: Plausibiltät auf einen Zeitraum von eine Jahr
 
In den DateUtils gibt et Funktionen zum Berechnen von Zeitabschnitten

Eppos 22. Jun 2009 09:55

Re: Plausibiltät auf einen Zeitraum von eine Jahr
 
Auch in Delphi 5?

mkinzler 22. Jun 2009 10:11

Re: Plausibiltät auf einen Zeitraum von eine Jahr
 
Da ich seit Urzeiten kein Delphi 5 mehr verwenden, kann ich das nicht Testen.

Jürgen Thomas 22. Jun 2009 10:26

Re: Plausibiltät auf einen Zeitraum von eine Jahr
 
Zitat:

Zitat von Eppos
Auch in Delphi 5?

Anscheinend nicht. In der Delphi-Hilfe finde ich dazu nur SysUtils, in den Delphi-Quellen nichts anderes. In der Rx-Library (einem der Vorgänger der Jedis) gibt es DateUtil mit einigen passenden Funktionen. Jürgen

toms 22. Jun 2009 10:30

Re: Plausibiltät auf einen Zeitraum von eine Jahr
 
DaysBetween gibt es noch nicht in D5.

Delphi-Quellcode:
function DaysBetween(const ANow, AThen: TDateTime): Integer;
begin
  if ANow < AThen then
    Result := Trunc(AThen - ANow)
  else
    Result := Trunc(ANow - AThen);
end;

leddl 22. Jun 2009 10:32

Re: Plausibiltät auf einen Zeitraum von eine Jahr
 
:gruebel: Und warum lässt du nicht einfach nur das Startdatum auswählen und berechnest das Enddatum? Ist doch für den Benutzer deutlich einfacher und weniger fehleranfällig...

hoika 22. Jun 2009 10:43

Re: Plausibiltät auf einen Zeitraum von eine Jahr
 
Hallo,

leddl hat Recht, wenn es um Konfigurationen handelt.
Einmal gesetzt, bleibt der Wert solange gestetzt,
bis ein neuer Eintrag mit neuem Startdatum eingetragen wird.

Ansonsten prüfe ich das immer so.


geg:
Eintrag1: Start1/End1
Eintrag2: Start2/End2

Ich prüfe nicht auf Überschneidung, sondern, ob Eintrag 2 vor oder hinter Eintrag 1 ist.
Ist er es nicht, gibt es eine Überschneidung.

davor:
End2 < Start1

dahinter:
Start2 > End1

noch ein not davor und du hast die Überschneidung.


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 04:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz