![]() |
Re: Probs mit Datum- / Zeitfunktionen
... hab ich ja schon einige Male gemacht.
Ich konnte sehen, das in einem Zeitraum von ges. etwa 3 Stunden die Zeit plötzlich 13 Minuten vor ging. Habe das Prog beendet und noch ein paar Log's zusätzlich reingeschrieben. Nur mal Zeit auslesen mit Time oder GetTime (das gleiche !?) oder Now zerlegt... Blieb bei dem Versatz. Hab den Rechner neu gestartet und wieder alles gut. Selbe Spiel noch mal - keine Probleme. Aufnahmen programiert - ein Tag gut, anderer Tag 2. Aufnahme zu spät, usw. Ich las das noch mal loggen (aber erst am WE hab ich wieder Zeit) und poste das hier mal. Ementare Auszüge vom Prog schreib ich dann auch dazu. Na klar kann man mal die eine oder andere Bohle vorm (im ?) Hirn haben und es geht einfach nicht weiter. Vor allem wenn man stunden-/tagelang wie besessen davorsitzt ' ... muss doch gehen ?!'. Da hab ich auch kein Problem, wenn mich da einer wegen eines eklatanten Denk-/Tippfehler's anfrotzelt. Ich seh/find da aber absolut nix... Und A) hab ich das auch schon mal tagelang zum Kopf frei machen an die Seite gelegt und B) funktioniert es ja prinzipiell zu einem sehr hohen Prozentsatz was mich nicht glauben lassen will, dass ein grundsätzlicher Denk-/Tipp-Fehler drin ist. Wie Eingangs schon angesprochen, vermute ich irgendwas anderes im Rechner, was die Zeit in unregelmäßigen Abständen mit unregelmäßigem Versatz verstellt. Aber was soll/kann das sein ? Maschine sollte (ist) sauber und es wird auch nix 'ungewöhnliches gestartet. Na gut, man soll niemals nie sagen... Deswegen die Frage, woher Delphi denn eigentlich seine Zeit bezieht (BIOS oder WinDoof). Ich hatte die DateTime-Funktionen selbst eigentlich nicht in Verdacht ! Vielleicht ist das ja ein Board-Prob ? Kommt eh am WE ein neues rein .... Oder Temeratur irgendwie/-wo ? Oder.... |
Re: Probs mit Datum- / Zeitfunktionen
Hallo TERWI,
da Du immer auf dem boot herum reitest, riecht das sehr nach dem Timertick, der läuft ja nach 2 Tagen über(?). Soweit ich weiß kommst Du unter Windows nicht mehr an die BIOS-Zeit heran (DOS läßt grüßen!) Da gab es in den letzten 6 Monaten auch mal einen thread zu. Du holst Dir nicht zufälliger Weise die Zeit von einem Zeitserver?? Gruß K-H |
Re: Probs mit Datum- / Zeitfunktionen
Zitat:
Daran habe ich ehrlich gesagt überhaupt nicht dran gedacht. time.windows.com ist eingestellt und angehakt.... Das kann - muss aber nicht - die / eine Fehlerquelle sein. Halte ich aber für möglich, da im Fenster 'Eigenschaften von Datum und Uhrzeit' die nächste Aktualisierung erst morgen um 18:04 angekündigt ist. Das erklärt zumindestens, das meine 'Kurzzeitversuche' immer klappen - nur wenn's denn mal länger dauert ... Stellt sich nur die Frage, warum die Zeit falsch eingestellt wird ? Ich habe dem Haken auf jedenfall schon mal entfernt und werde das am WE mal wieder ausgiebig testen. K-H... ein MegaDank an dich :cheers: Trotzdem abwarten und Tee ? trinken. Sonst noch jemand ne Idee ? |
Re: Probs mit Datum- / Zeitfunktionen
Ergänzung @K-H
Zitat:
Eine sicherlich bei vielen bekannte und bei unerklärlichen Fehlern oft angewendete Methode nach dem uralten Spruch schon aus DOS-Zeiten: Zitat:
Zitat:
Nochmal: Zitat:
(genau) |
Re: Probs mit Datum- / Zeitfunktionen
Zitat:
GetLocalTime stützt sich wiederum auf GetSystemTime. Die Systemzeit von GetSystemTime wird anfangs über die Real Time Clock im BIOS initialisiert und wird dann IHMO mit Hilfe von GetTickCount weitergerechnet. Die Systemzeit kann von der RTC abweichen (über die Funktion SetSystemTimeAdjustment). Wenn du den Verdacht hast, dass da irgendetwas nicht stimmt, dann schreib dir doch ein Testprogramm. Beim Programmstart die aktuelle Zeit über New() holen und merken. Das Gleiche mit GetTickCount ausführen. Einen Timer starten, der jede Sekunde Folgendes tut:
Delphi-Quellcode:
Eine Manipulation an der Systemzeit, der Wechsel von Sommer- zu Winterzeit oder Änderung
MillisekundenSeitStart1 := (now()-startzeit) * MSecsPerDay;
MillisekundenSeitStart2 := GetTickCount()-startticks; if Abs(MillisekundenSeitStart2-MillisekundenSeitStart1) > 100 then begin // Meldung in Memo schreiben, dass Zeitabweichung festgestellt wurde // und wie gross diese ist end; der Zeitzone sollte sofort eine Meldung hervorrufen. Nach 49.7 Tagen gibt es in GetTickCount einen Überlauf und damit ebenfalls eine Meldung. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 12:09 Uhr. |
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