AGB  ·  Datenschutz  ·  Impressum  







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

Zeitenvergleich schlägt fehl

Ein Thema von CalganX · begonnen am 29. Jul 2003 · letzter Beitrag vom 1. Apr 2004
Antwort Antwort
Seite 1 von 2  1 2      
CalganX

Registriert seit: 21. Jul 2002
Ort: Bonn
5.403 Beiträge
 
Turbo Delphi für Win32
 
#1

Zeitenvergleich schlägt fehl

  Alt 29. Jul 2003, 14:30
Hi,
in einem Timer.OnTimer-Event folgenden Source:
Delphi-Quellcode:
if {Get}Time >= DateTimePicker1.Time then
  ShowMessage('Its Time');
Allerdings klappt das nie...

Habt ihr da eine Idee??

Chris

PS: Ach ja: Der Kind vom DateTimePicker steht auf dkTime.
  Mit Zitat antworten Zitat
Tpercon

Registriert seit: 7. Jun 2002
638 Beiträge
 
Delphi 5 Professional
 
#2

Re: Zeitenvergleich schlägt fehl

  Alt 29. Jul 2003, 14:42
Nimm anstatt Time now, dann sollte es gehen!

Gruß
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Zeitenvergleich schlägt fehl

  Alt 31. Mär 2004, 20:16
@Chakotay1308

Funktioniert es bei Dir?
Ich wollte gern Datum und Zeit abfangen. Und zwar so:
Delphi-Quellcode:
If (Date>=On_Date.Date) And (Time>=On_Time.Time) Then
   Application.MessageBox('Ich gehe jetzt online','Online',MB_OK);
Selbst wenn ich jetzt aus ">=" lediglich ein "=" mache oder statt "Time" "Now" verwende, geht es bei mir trotzdem nicht!
Alex Winzer
  Mit Zitat antworten Zitat
Synonym
(Gast)

n/a Beiträge
 
#4

Re: Zeitenvergleich schlägt fehl

  Alt 31. Mär 2004, 20:21
@schwedenbitter: deinen namen habe ich mal abgefüllt, bei uns im labor

synonym
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#5

Re: Zeitenvergleich schlägt fehl

  Alt 31. Mär 2004, 20:33
Time liefert nur die Uhrzeit-Wert zurück (z.B. 0.75 für 18:00) und DateTimePicker.Time liefert immer den kompletten Zeitstempel zurück (38077.xy für heute). D.h du mußt den DateTimePicker.Time um die ganzzahl "befreien".

z.B.
Code:
  if Time >= DateTimePicker.Time - Trunc(DateTimePicker.Time) then
    ShowMessage('Its Time');
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Zeitenvergleich schlägt fehl

  Alt 31. Mär 2004, 20:46
So weit so gut!
Allerdings wollte ich auch noch das Datum abfragen. Außerdem verstehe ich nicht so recht, warum die Variable TTime mal so und mal so bewertet wird. Schließlich funktioniert Dein Vorgehen zwar, hat aber einen Haken: Man bekommt die Message nicht mehr weg, weil ab einem bestimmten Punkt die aktuelle Zeit immer größer ist als die eingegebene.
Ich möchte gern ein Programm schreiben, welches neben der Uhr läuft und zu bestimmten Zeiten an bestimmten Daten vordefinierte Aktionen macht (und das nur einmal).
Trotzdem erst mal Danke.
Alex Winzer
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#7

Re: Zeitenvergleich schlägt fehl

  Alt 31. Mär 2004, 20:50
geht das nicht mit nem boolean?
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.197 Beiträge
 
Delphi 10.4 Sydney
 
#8

Re: Zeitenvergleich schlägt fehl

  Alt 31. Mär 2004, 20:57
Zitat:
warum die Variable TTime mal so und mal so bewertet wird.
Ist vieleicht etwas unglücklich von der TDateTimePicker-Komponente das sie nicht den Tages-Teil abschneidet.
TDatetime (und AFAIK TTime) ist 'ne Fließkommazahl, dessen ganze Zahl die Tage seit 31.12.1899 angiebt und der Nachkommateil den "Prozentsatz" des Tages: 0,25 = 06:00; 0,5 = 12:00; 0,75 = 18:00.

Zitat:
Dein Vorgehen zwar, hat aber einen Haken: Man bekommt die Message nicht mehr weg, weil ab einem bestimmten Punkt die aktuelle Zeit immer größer ist als die eingegebene.
Wieso mein Vorgehen? Dein Code hat doch das gleiche Verhalten (wenn es funktioniert hätte). Du mußt dir halt merken das der Zeitpunkt schon vorbei ist und einmal die entsprechende Aktion ausgeführt wurde.
  Mit Zitat antworten Zitat
Benutzerbild von glkgereon
glkgereon

Registriert seit: 16. Mär 2004
2.287 Beiträge
 
#9

Re: Zeitenvergleich schlägt fehl

  Alt 31. Mär 2004, 21:07
und dafür machst du das:
Delphi-Quellcode:
 
var schongemacht:boolean;
begin
schongemacht:=false;
if (Time >= DateTimePicker.Time - Trunc(DateTimePicker.Time)) and (schongemacht=false)
then begin
        ShowMessage('Its Time');
        schongemacht:=true;
        end;
end;
»Unlösbare Probleme sind in der Regel schwierig...«
  Mit Zitat antworten Zitat
Schwedenbitter

Registriert seit: 22. Mär 2003
Ort: Finsterwalde
622 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Zeitenvergleich schlägt fehl

  Alt 31. Mär 2004, 22:49
Ich habe jetzt eine für mich ausreichende Lösung gefunden !
Ich wandle "einfach" das von mir gewünschte Datum nebst Zeit in einen mir bekannten String um. Anschließend tue ich dasselbe in meiner Timer-Procedure auf exakt dieselbe(!) Art und Weise und vergleiche einfach die Strings miteinander. Wenn man den Timer auf 1.000 einstellt, bekommt man das Ereignis auch nur noch einmal und kann sich die Booleans sparen. Das ist auch besser so, weil man sonst bei meiner Anzahl von Aktionen schnell den Überblick verliert oder ggf. auf Array ausweichen muß, was das ganze nicht einfacher macht.
Die aktuelle Zeit könnte so aussehen,
Zeit:=Concat(DateToStr(Date),TimeToStr(Time)); das merken der Zeit z.B. so und
Delphi-Quellcode:
{   Zeitwerte merken   }
Onn:=Concat(DateToStr(On_Date.Date),   TimeToStr(On_Time.Time));
Off:=Concat(DateToStr(Of_Date.Date),   TimeToStr(Of_Time.Time));
Run:=Concat(DateToStr(Run_Date.Date),   TimeToStr(Run_Time.Time));
die Abfrage dementsprechend so:
Delphi-Quellcode:
{   online gehen?      }
If Zeit=Onn Then
Begin
   Application.MessageBox('Ich gehe jetzt online','Online',MB_OK);
End;
Wer noch eine bessere Idee hat, bitte trotzdem melden. Ich bin immer bereit, neues zu lernen!
Alex Winzer
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 02:34 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