Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi Probs mit Datum- / Zeitfunktionen (https://www.delphipraxis.net/140302-probs-mit-datum-zeitfunktionen.html)

TERWI 15. Sep 2009 18:35


Probs mit Datum- / Zeitfunktionen
 
Ich hab mir einen kleinen Scheduler für DVB-Aufnahmen gebastelt.
Darin wird z.B. mit gespeicherten Datum-/Zeitangaben in einem 1-Minuten-Timer mit Now verglichen und ne Aufnahme bei bestimmten Kriterien gestartet.
Funktioniert so weit einwandfrei, aaaber...

Gelegentlich starten Aufnahmen viel zu spät oder gar nicht, bzw. werden zu früh abgebrochen.
Ich hab mir dann mal die Werte von NOW mitloggen lassen und musste feststellen, das die Zeit meistens - aber NICHT IMMER stimmt !
Rechner rebootet - alles wieder klar.
Bis zur nächsten 'Abweichung' irgendwann...

Woher holt sich Delphi die Zeit ? Von WinDoof oder direkt aus dem BIOS ?
Ich bin mir eigentlich recht sicher, das ich auf der Progger-Mühle nichts weiter am laufen habe, was auch nur ansatzweise die Zeit irgendwie verpfuscht.

Das verrückte dabei ist, das die Uhr richtig geht !

Hat jemand so was schon mal gehabt und oder ne Idee ?

himitsu 15. Sep 2009 18:43

Re: Probs mit Datum- / Zeitfunktionen
 
Wie hast du festgestellt, daß Now nicht stimmen kann?

bzw. welche Zeit-Quelle hast du als Vergleich genutzt?

mkinzler 15. Sep 2009 19:00

Re: Probs mit Datum- / Zeitfunktionen
 
Vielleicht ist now zu genau?

TERWI 15. Sep 2009 19:03

Re: Probs mit Datum- / Zeitfunktionen
 
In dem ich wie gesagt über die merkwürdigen Start- und Stoppzeiten gestolpert bin.
Da hab ich mir mal in einem Fenster meines eigenen Loggers die Zeit in der Timer-Func hab mitlaufen lassen.
Referenz: meine Armbanduhr 8)

Ist auch nicht sonderlich schwierig mit dem Vergleich, denn es geht um wenige Minuten bis zu Stunden !

Man muss dazu sagen:
Wenn ich kurzzeitversuche mache - 4-5 AUfnahmen in einer Stunde - passiert nix, alles sauber.
Und Now ist dann genau :mrgreen:

jfheins 15. Sep 2009 19:58

Re: Probs mit Datum- / Zeitfunktionen
 
Ich zitiere mal:
Delphi-Quellcode:
function Now: TDateTime;
var
  SystemTime: TSystemTime;
begin
  GetLocalTime(SystemTime);
  with SystemTime do
    Result := EncodeDate(wYear, wMonth, wDay) +
      EncodeTime(wHour, wMinute, wSecond, wMilliseconds);
end;
Es wäre also ein Bug in der Funktion GetLocalTime.

Meinst du nicht, es wäre in den 9 Jahren aufgefallen, wenn diese Funktion Murks zurückliefert? :stupid:

Irgendwas machst du also falsch ;)

TERWI 15. Sep 2009 20:54

Re: Probs mit Datum- / Zeitfunktionen
 
Sicher ist das kein Bug - ob wohl ich den Spruch in meinem Leben schon sooo oft gehört habe:
Terwi, du bist der erste Mensch auf diesem Planeten, der dies hat / kann / will / beanstandet / etc. ping pong ....

Es passiert ja auch nicht immer !
Logo gemäß Murphy schon gar nicht, wenn ich vor der Maschine sitze und mir den Logger ansehe.
Erst wenn ich z.B. über Nacht was aufnehme, sehe ich am nächsten Tag unvollständige Aufnahmen und die 'Zeit' ist Ihrerselbst vorausgeeilt.

Aber halt nicht IMMER ! Ich krieg da keinen Reim drauf.
Das geht mal von Minuten bis zu Stunden.

Wo kommt den GetLocalTime(SystemTime); her ? Bios ? WinDoof-eigener Timer ?
Wer / was kann so etwas verstellen ?

Der Code sollte ja wohl in Ordnung sein, wenn er denn in Kurzzeit-Aufnahmen oder auch gelegentlich läuft !?
Ich prüfe auch nicht explizit auf =, sondern mit Start- oder Stopzeit <= NOW. Und das 'nur' im Sekundentakt.
Da kann eigentlich nix unterschlagen werden oder zeitkritisch sein.

Ich bin da echt planlos...
Deswegen noch mal die Frage: Wer oder was kann die Zeit stören ?
Auf dieser Kiste sind keine 'experimentellen' Installationen - das ist ein Arbeitsgerät !

HiWieGehts 15. Sep 2009 21:04

Re: Probs mit Datum- / Zeitfunktionen
 
Vielleichtist ist nicht now ungenau, sondern die Abfrage von now. Anders ausgedrückt, unter Umständen hängt das Programm und macht minuten- oder stundenlang "nichts" bis es weiterarbeitet.

TERWI 15. Sep 2009 21:23

Re: Probs mit Datum- / Zeitfunktionen
 
Definitv NEIN.

Wie gesagt prüfe ich Zeiten (Datum und Zeit) NICHT auf =, sondern auf <= (kleiner gleich).
Wenn also eine Start- oder Stoppzeit konkret von NOW abweicht, wird reagiert.
Jede Prüfung kommt wie gesagt aus demTimer-Event im Sekunden-Takt - nix mit (milli) Sekunden.
Auch in den daraus aufgerufenen Sub's kann es keine Hänger geben.
Das habe ich seit Tagen / Wochen zig-mal kontrolliert.

Es funktioniert ja auch, wenn ich z.B. div. Aufnahmen in kurzer Abfolge mache !
Es funktioniert ja auch in sagen wir mal 80-90% aller 'Langzeit-Versuche' über Tage !

Es funktioniert NUR MANCHMAL nicht ! ! !
... und soooo kompliziert ist der Code auch nicht, das ich das nicht mehr blicke.
Irgendwas 'tritt' den Timer vorran - ich weiß aber nicht was.

Ich progge übrigens schon seit DOS-Zeiten mit Pascal / Delphi.
So ein Dummer bin ich nicht ... :roll:
... aber irgendwann holt's einen immer wieder ein. :gruebel:

HiWieGehts 15. Sep 2009 22:44

Re: Probs mit Datum- / Zeitfunktionen
 
Unabhängig davon, dass ich schon seit CBM-Zeiten programmiere ein anderer Vorschlag: Schreib ein kleines Programm, das nur jede Minute (timergesteuert) now in ein Textfile schreibt. Wenn deine Steuerung wieder versagt, schau ob auch im Textfile falsche Zeiten stehen bzw. die Einträge unregelmässig sind.

sx2008 16. Sep 2009 00:59

Re: Probs mit Datum- / Zeitfunktionen
 
Zitat:

Zitat von TERWI
Ich progge übrigens schon seit DOS-Zeiten mit Pascal / Delphi.

Das schützt dich nicht vor dem "Tomaten auf den Augen"-Effekt.
Selbst die besten Programmierer haben manchmal so eine Art Brett vor dem Kopf.
Immer der gleiche Ablauf:
Man hat ein Problem und findet einfach den Fehler nicht.
Ein Kollege schaut kurz in den Sourcecode und sagt dann "Was machst du denn da? Du überschreibst doch das, was du oben ausgerechnet hast...."
Klatsch - die Hand knallt auf die Stirn und es rutscht ein "Mann bin ich blöd" raus (was der Kollege eifrig bestätigt oder dementiert :-)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:44 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz