[Gelöst]Zeitraum berechnen (CC)

30. April 2012 15:41

Hallo zusammen,
ich habe mal wieder eine Frage die ihr mir wahrscheinlich ruck zuck beantworten könnt :).
Ich habe in einer Form (in der entsprechenden Tabel natürlich auch) 2 Datumsfelder. Sagen wir mal "Von" und "Bis". Ich möchte jetzt das während dieses Zeitraums etwas geschieht z.B. eine Message sobald die Form geöffnet wird(On Open Form). Wie gehe ich da jetzt am sinnigsten vor?

Für einen kleinen Schubs in die richtige Richtung wäre ich dankbar :)
Zuletzt geändert von galnar am 2. Mai 2012 12:34, insgesamt 1-mal geändert.

Re: Zeitraum berechnen (CC)

1. Mai 2012 07:14

Hallo Frank,

bei Datumsfeldern ist das noch recht einfach:
Code:
IF Workdate IN [VonDatum..BisDatum] THEN BEGIN
  
...
END; 

Anstelle von Workdate kannst du natürlich auch Today abfragen.

Schwieriger würde es bei Zeitangaben werden, wenn das Zeitfenster von Mitternacht gekreuzt wird. (Z. B. 22:00 - 02:00).
Code:
IF BisZeit > VonZeit THEN BEGIN
  IF 
(VonZeit <= Time) AND (Time <= BisZeit) THEN BEGIN
    
...
  END;
END ELSE BEGIN
  IF 
(BisZeit <= Time) AND (Time <= VonZeit) THEN BEGIN
    
...
  END;
END; 

[Geschlossen] Zeitraum berechnen (CC)

2. Mai 2012 12:23

Super Danke......so wurde einem NAV - Neuling mal wieder geholfen :)

Re: [Gelöst]Zeitraum berechnen (CC)

2. Mai 2012 18:55

Der Vollständigkeit halber möchte ich hier noch die Variante erwähnen, wenn man sowohl Von-Datum/Von-Uhrzeit und Bis-Datum/Bis-Uhrzeit hat:

Hier sollten wir der Einfachheit halber zuerst zwei DateTime-Variablen mit den entsprechenden Werten füllen, damit wir keine hochkomplexe IF-Abfrage erstellen müssen, welche alle Konstellationen berücksichtigt.
(Leider schon sehr häufig in der Realität angetroffen.)
Code:
FromDateTime := CREATEDATETIME(FromDate,FromTime);
UntilDateTime := CREATEDATETIME(UntilDate,UntilTime);
IF (FromDateTime <= CURRENTDATETIME) AND (CURRENTDATETIME <= UntilDateTime) THEN BEGIN
  
...
END; 
In diesem Fall können wir die Tatsache, dass DateTime die Zeitzonen-Verschiebung sowie den Unterschied zwischen Sommerzeit/Winterzeit berücksichtigt, einfach mal vernachlässigen, da die Umwandlung ja nur für die Auswertung in der IF-Bedingung benötigt wird.