| Autor |
Beitrag |
tortom1000
      
Beiträge: 175
Win XP, Win Server 2003 - 2012, Win 7
Delphi 7
|
Verfasst: Mo 05.01.09 22:56
Hallo,
ich bräuchte mal eure Hilfe:
Ich möchte gerne, wenn die aktuelle Uhrzeit innerhalb bspw. 10:00 - 23:59 Uhr
liegt, eine Prozedur oder ein showmessage ausführen, jedoch habe ich keinen
Schimmer, wie ich das anstellen kann.
Ich habe auf der Form einen Timer gepackt, innerhalb des Timer frage ich dann die
akuelle Uhrzeit ab via "now". Wie kann ich jetzt jedoch feststellen, ob "now" innerhalb
10:00 und 23:59 Uhr liegt?
Für Hilfe stets dankbar.
Tortom
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Mo 05.01.09 23:10
Die manuelle Methode (ungetestet): Delphi-Quelltext 1:
| if (now >= Trunc(now) + 10/24) and (now < Trunc(now + 1)) then | Das basiert darauf, dass bei den Zeitwerten ein Tag 1 entspricht. 10 Uhr ist also die aktuelle Zeit ohne die Nachkommastellen (00:00 Uhr) plus 10/24, also 10 von 24 Stunden, des Tages dazu.
|
|
lincore
Hält's aus hier
Beiträge: 15
Kubuntu 8.04, Debian lenny, Windows XP, Windows Vista
Delphi 2009, C++, Python, Lua
|
Verfasst: Di 06.01.09 00:03
|
|
jaenicke
      
Beiträge: 19341
Erhaltene Danke: 1752
W11 x64 (Chrome, Edge)
Delphi 12 Pro, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
|
Verfasst: Di 06.01.09 00:06
Nein, das war schon richtig, denn so wie du es hast, würden 10 Stunden zur aktuellen Zeit addiert, und dann davon auf 00:00 Uhr zurückgerechnet praktisch. Also z.B. 23 Uhr heute + 10 Stunden = 9 Uhr morgen. Vergangene Teile des Tages abschneiden ergibt 00:00 Uhr morgen früh, also in einer Stunde, statt heute früh, also vor 23 Stunden. 
|
|
lincore
Hält's aus hier
Beiträge: 15
Kubuntu 8.04, Debian lenny, Windows XP, Windows Vista
Delphi 2009, C++, Python, Lua
|
Verfasst: Di 06.01.09 00:19
<ot>Irre!</ot>
Das sollte ich mir mal durch den Kopf gehen lassen.
|
|
BenBE
      
Beiträge: 8721
Erhaltene Danke: 191
Win95, Win98SE, Win2K, WinXP
D1S, D3S, D4S, D5E, D6E, D7E, D9PE, D10E, D12P, DXEP, L0.9\FPC2.0
|
Verfasst: Di 06.01.09 13:40
Einfacher geht's mit Frac(Now):
Delphi-Quelltext 1:
| If (Frac(Now) > 10/24) and (Frac(Now) < 1) Then |
_________________ Anyone who is capable of being elected president should on no account be allowed to do the job.
Ich code EdgeMonkey - In dubio pro Setting.
|
|
jakobwenzel
      
Beiträge: 1889
Erhaltene Danke: 1
XP home, ubuntu
BDS 2006 Prof
|
Verfasst: Di 06.01.09 13:59
Frac wird aber niemals 1, weshalb das reichen sollte:
Delphi-Quelltext 1:
| If Frac(Now) > 10/24 Then |
_________________ I thought what I'd do was, I'd pretend I was one of those deaf-mutes.
|
|
tortom1000 
      
Beiträge: 175
Win XP, Win Server 2003 - 2012, Win 7
Delphi 7
|
Verfasst: Mi 07.01.09 09:15
Hallo,
vielen Dank für eure Hilfe. Ich werde heute
die vorgeschlagenen Lösungen austesten.
Nochmals Danke
Tortom
|
|
matze
      
Beiträge: 4613
Erhaltene Danke: 24
XP home, prof
Delphi 2009 Prof,
|
Verfasst: Mi 07.01.09 10:15
Nur so ein kleiner Tipp am Rande:
Da es für mich so aussieht, als wärst du noch nicht so erfahren in Delphi, kannst du auch folgenden Aufruf machen:
Delphi-Quelltext 1:
| if HourOf(now) > 10 then |
Damit das funktioniert musst du allerdings DateUtils bei uses mit in die Liste schreiben.
Das ist vielleicht einfacher zu lesen und nachzuvollziehen. Funktioniert aber genau so wie die anderen Codes.
_________________ In the beginning was the word.
And the word was content-type: text/plain.
|
|
tortom1000 
      
Beiträge: 175
Win XP, Win Server 2003 - 2012, Win 7
Delphi 7
|
Verfasst: Do 15.01.09 09:55
Hallo,
wollte mich noch mal kurz bei euch bedanken. Konnte dank eurer Tipps
mein "Problem" gut lösen.
Nochmals vielen Dank
Tortom
|
|
|