Entwickler-Ecke
Sonstiges (Delphi) - Innerhalb einer Zeitspanne (10:00 - 23:59) Prozedur starten
tortom1000 - Mo 05.01.09 22:56
Titel: Innerhalb einer Zeitspanne (10:00 - 23:59) Prozedur starten
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 - 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 - Di 06.01.09 00:03
jaenicke hat folgendes geschrieben : |
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. |
Bitte korrigiere mich wenn ich falsch liege, aber ich glaube Du hast Dich bei einer Klammer vertan:
Delphi-Quelltext
1:
| if (now >= Trunc(now + 10/24)) and (now < Trunc(now + 1)) then |
jaenicke - 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 - Di 06.01.09 00:19
<ot>Irre!</ot>
Das sollte ich mir mal durch den Kopf gehen lassen.
BenBE - 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 |
jakobwenzel - Di 06.01.09 13:59
Frac wird aber niemals 1, weshalb das reichen sollte:
Delphi-Quelltext
1:
| If Frac(Now) > 10/24 Then |
tortom1000 - 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 - 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.
tortom1000 - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!