AGB  ·  Datenschutz  ·  Impressum  







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

Uhrzeiten vergleichen

Ein Thema von Ykcim · begonnen am 22. Jan 2009 · letzter Beitrag vom 19. Okt 2014
Antwort Antwort
Seite 3 von 4     123 4      
Tango

Registriert seit: 17. Apr 2011
Ort: Aachen
64 Beiträge
 
Delphi XE2 Starter
 
#21

AW: Uhrzeiten vergleichen

  Alt 18. Okt 2014, 00:16
Danke an euch beiden.sobald ich von der Arbeit komme werde ich es genauer studieren und testen.
  Mit Zitat antworten Zitat
hstreicher
Online

Registriert seit: 21. Nov 2009
221 Beiträge
 
Delphi 10.2 Tokyo Professional
 
#22

AW: Uhrzeiten vergleichen

  Alt 18. Okt 2014, 11:15
mal ein Alternativvorschlag ,
anstatt die Zeiten zu vergleichen ,
prüf doch einfach wies spät ist es, wann ist die nächste Aktion fällig
und setzt den Timer auf die Differenz
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#23

AW: Uhrzeiten vergleichen

  Alt 18. Okt 2014, 14:04
Den Stundenwechsel kann man einfach so erfassen:

Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
var aHour,aMin,aSec,aMSec: Word;
begin
repeat
  Label1.Caption := TimeToStr(Time);
  DecodeTime(now,aHour,aMin,aSec,aMSec);
  sleep(1000);
until (aHour in [6..19]) and (aMin = 0);
 Winapi.Windows.Beep(1500,200); // ----ab hier ACTION !
end;

Geändert von hathor (18. Okt 2014 um 14:07 Uhr)
  Mit Zitat antworten Zitat
Dejan Vu
(Gast)

n/a Beiträge
 
#24

AW: Uhrzeiten vergleichen

  Alt 18. Okt 2014, 19:57
Oder so:

Delphi-Quellcode:
Const
  SixAM = 6/24;
  SevenPM=19/24;

var
  theTime : Double;

begin
  theTime := Fract(Now);
  if (theTime >= sixAM) and (theTime <=SevenPM) then
    ShowMessage('Es ist irgendwann zwischen 06:00 und 19:00');
  Mit Zitat antworten Zitat
Tango

Registriert seit: 17. Apr 2011
Ort: Aachen
64 Beiträge
 
Delphi XE2 Starter
 
#25

AW: Uhrzeiten vergleichen

  Alt 18. Okt 2014, 19:58
Erst mal formatieren, dann schauen, dann denken
Delphi-Quellcode:
procedure*TForm1.Timer1Timer(Sender: TObject);
Var*
  Time, LastTime: TDateTime;
begin
**If*(Frac(Time) <= StrToTime('06:00:00'))*and*(Frac(Time) > StrToTime('14:00:00'))
**Then
****LastTime := now;

  edit1.Text:= 'Frühschicht';

  If*(Frac(Time) <= StrToTime('14:00:01'))*and*(Frac(Time) > StrToTime('22:00:00'))
**Then
    edit1.Text:= 'Spätschicht';

  LastTime := Now ;
end;

end.
Welchen Wert hat Time ? - Irgendeinen, also ein Zufallsgenerator?
Wofür wird LastTime ein Wert zugeordnet? Für nix.

Ich würde es mal damit probieren
Delphi-Quellcode:
function GetShiftNameFromTime ( ATime : TTime ): string;
var
  LTime : TTime;
begin
  LTime := Frac ( ATime );
  if LTime < EncodeTime ( 6, 0, 0 )
  then
    Result := 'Nachtschicht'
  else if LTime < EncodeTime ( 14, 0, 0 )
  then
    Result := 'Frühschicht'
  else if LTime < EncodeTime ( 22, 0, 0 )
  then
    Result := 'Spätschicht'
  else
    Result := 'Nachtschicht';
end;
Verwenden dann so
Delphi-Quellcode:
procedure TForm1.Timer1Timer ( Sender : TObject );
begin
  Edit1.Text := GetShiftNameFromTime ( Now );
end;
So habe es mal ausprobiert, bekomme Fehlermeldung, nicht des so Trotzt so wie ich es verstanden habe überprüft der Timer ob es exakt 6:00 oder 14:00 ist
es sollte aber zwischen 6:00-14:00, 14:01-22:00, 22:01-6:00 unterscheiden.
Miniaturansicht angehängter Grafiken
unbenannt.jpg  
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#26

AW: Uhrzeiten vergleichen

  Alt 18. Okt 2014, 20:22
Ein Blick in die Doku Delphi-Referenz durchsuchenEncodeTime oder ein STRG-Click hätte dir sofort geholfen.

Kein Wunder, dass Emba sich damit Zeit lässt, denn gefühlt schaut da niemand rein.

Und nein es wird nicht exakt auf den Zeitpunkt geprüft, sondern in welchem Bereich der übergebene Zeitpunkt liegt.
Code:
Wenn Vor 06:00 dann Nachtschicht
Sonst Wenn Vor 14:00 dann Frühschicht
Sonst Wenn Vor 22:00 dann Spätschicht
Sonst Nachtschicht
Ach ja, der Timer prüft gar nichts, sondern der sorgt nur dafür, dass das Edit-Control die Schicht-Bezeichnung zur aktuellen Uhrzeit bekommt. Oder was heisst wohl GetShiftNameFromTime? Wenn man das noch sprechender gestalten will, dann benötigt man wohl zusätzliche externe Hardware (Holzhammer)
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)

Geändert von Sir Rufo (18. Okt 2014 um 20:26 Uhr)
  Mit Zitat antworten Zitat
Tango

Registriert seit: 17. Apr 2011
Ort: Aachen
64 Beiträge
 
Delphi XE2 Starter
 
#27

AW: Uhrzeiten vergleichen

  Alt 18. Okt 2014, 21:05
Danke, dank deiner Link habe ich gesehen das die Millisekunde gefehlt hat, eingetragen schon lief alles wie es soll.
Nur das mit dem Strg+click funktioniert nicht, sobald ich auf dem Code draufgehe und Strg+Click passiert bei mir nichts. Es soll so wie ich verstanden habe mir die Doku öffnen für das passende Befehl.
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#28

AW: Uhrzeiten vergleichen

  Alt 18. Okt 2014, 21:13
Mit gedrückter STRG Taste auf das Wort klicken und es öffnet sich die Unit und der Cursor steht direkt im Quelltext auf der Definition. Man kann also sofort sehen, wie das deklariert ist und was da genau passiert.
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#29

AW: Uhrzeiten vergleichen

  Alt 18. Okt 2014, 21:17
In der Starter gibt es keine RTL/VCL-Quellcodes,
aber das Help-Insight gibt es hoffentlich (Mauszeiger 'nen paar Sekunden über den Befehl halten)
und natürlich das F1.

Im Debugger fehlt das Insight "Wert der Variable anzeigen" im Starter, so wie vieles Andere ebenfalls.
$2B or not $2B

Geändert von himitsu (18. Okt 2014 um 21:19 Uhr)
  Mit Zitat antworten Zitat
Tango

Registriert seit: 17. Apr 2011
Ort: Aachen
64 Beiträge
 
Delphi XE2 Starter
 
#30

AW: Uhrzeiten vergleichen

  Alt 18. Okt 2014, 21:25
Danke an euch allen, ja mit Starter hat es wie du sagtest mit Befehl auswählen und f1 drücken geklappt habe heute vieles gelernt.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 3 von 4     123 4      


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 20:10 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