AGB  ·  Datenschutz  ·  Impressum  







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

CompareDateTime unter TD 2006 ?

Ein Thema von Ajin · begonnen am 21. Mär 2007 · letzter Beitrag vom 21. Mär 2007
Antwort Antwort
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#1

CompareDateTime unter TD 2006 ?

  Alt 21. Mär 2007, 10:16
Guten Morgen!

Also mein Programm läuft Tag und Nacht.
Ab genau 01:00 Uhr möchte ich, dass eine Variable auf TRUE gesetzt wird.
Ab 08:00 Uhr wieder auf FALSE.

Ist ein Uhrzeitvergleich ausreichend oder sollte ich das Datum mitprüfen?

Nun hab ich über die Forensuche festgestellt, dass diese Datum/Uhrzeit Vergleiche recht oft disskutiert wurden. Dabei wird häufig auf eine CompareDateTime Funktion verwiesen.

Delphi-Quellcode:
Unit
DateUtils
...
procedure TFlogin.Button1Click(Sender: TObject);
begin
 if CompareDateTime(now, StrToDateTime('21.03.2007 10:08:00')) = LessThanValue
 then showmessage('now liegt vor 21.03.2007 10:08:00')
 else showmessage('now liegt hinter 21.03.2007 10:08:00');
end;
Das Lessthanvalue ist noch unbekannt, hab auch ne variable -> ergebnis: TValueRelationship deklariert, ging aber auch nicht. Funktioniert mein Vorhaben mit CompareDateTime oder reicht auch ein CompareTime?
Bzw. wie bekomme ich das ohne Fehler kompiliert ;P
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#2

Re: CompareDateTime unter TD 2006 ?

  Alt 21. Mär 2007, 11:18
Delphi-Quellcode:
function MittenInDerNacht(zeit:TDateTime):boolean;
var
   startzeit, endzeit: TDatetime;
begin
   zeit := Frac(zeit); // Uhrzeit Anteil abtrennen; das Datum wird also ausgeblendet
   startzeit := EncodeTime(1,0,0,0); // 1 Uhr
   endzeit := EncodeTime(8,0,0,0); // 8 Uhr
   result := (zeit >= startzeit) and zeit <= endzeit);
end;
Andreas
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#3

Re: CompareDateTime unter TD 2006 ?

  Alt 21. Mär 2007, 11:51
Oh vielen Dank für die Antwort!
Ich hab in der Zwischenzeit folgendes zusammengeschustert:


Delphi-Quellcode:
function DateTimeDiff_m(date1, date2: TDateTime): string;
var days, hours, minutes, secs: integer;
  difference: real;
begin
  difference:=date2-date1;
  days:=round(difference-Frac(difference));
  difference:=Frac(difference)*24;
  hours:=round(difference-Frac(difference));
  difference:=Frac(difference)*60;
  minutes:=round(difference-Frac(difference));
  difference:=Frac(difference)*60;
  secs:=round(difference-Frac(difference));
  result:=IntToStr(minutes);
end;
Der Aufruf z.B.

Delphi-Quellcode:
procedure TFlogin.Button1Click(Sender: TObject);
begin
if StrToInt(DateTimeDiff_m(now, StrToDateTime('22.03.2007 01:00:00'))) < 0 then
begin
  //Variable auf True setzen weil die Minuten ins negative gehen
  //andere Anweisungen
end
 else
  begin
  //Variable auf FALSE setzen, der result ist noch positiv
  //andere Anweisungen
  end;
Ich teste gleich mal shimas version!
  Mit Zitat antworten Zitat
Ajin

Registriert seit: 23. Feb 2006
Ort: Mons
252 Beiträge
 
Delphi 2010 Professional
 
#4

Re: CompareDateTime unter TD 2006 ?

  Alt 21. Mär 2007, 11:59
Ich nochmal!

Also die Funktion von shmia läuft ebenfalls und ist 1000 mal intelligenter als meine knauperei.
Es fehlte nur ein kleines Klämmerchen

Delphi-Quellcode:
function MittenInDerNacht(zeit:TDateTime):boolean;
var
   startzeit, endzeit: TDatetime;
begin
   zeit := Frac(zeit); // Uhrzeit Anteil abtrennen; das Datum wird also ausgeblendet
   startzeit := EncodeTime(1,0,0,0); // 1 Uhr
   endzeit := EncodeTime(8,0,0,0); // 8 Uhr
   result := (zeit >= startzeit) and [b]([/b]zeit <= endzeit);
end;
Super Danke !
  Mit Zitat antworten Zitat
fLaSh11
(Gast)

n/a Beiträge
 
#5

Re: CompareDateTime unter TD 2006 ?

  Alt 21. Mär 2007, 13:48
Bitte keine HTML-Tags im Delphi Quellcode.
1. Funktioniert's nicht
2. Verwirrten sie...
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:51 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