Herausfinden ob Mitternacht vorbei ist
-
Berechne den Abstand zwischen den Zeiten. Sehr große Abstände deuten auf einen Tagwechsel hin.
-
also sehe ich das richtig das ich keine Möglichkeit habe herauszufinden ob ein Tag wirklich vorbei ist?
Ich kann es nur vermuten?
-
DWORD Message::convertToMillisecs() const { return msecs + secs * 1000 + mins * 60 * 1000 + hrs * 60 * 60 * 1000; } if(newMessage.convertToMillisecs() < oldMessage.convertToMillisecs()) { // mindestens 1x Mitternacht dazwischen }
Oder nicht?!
-
Oder die alte wurde vor der neuen abgeschickt. Und genau das kann man so nicht auseinanderhalten.
MfG Jester
-
Printkey schrieb:
ich bekomme Zeiten z.B.
23:41:23.0
23:51:03.0
23:51:26.0
00:01:03.0
00:01:29.0
00:11:03.0Diese Zeiten sind doch geordnet. Bei der vierten Nachricht würde man sehen, dass 00:01:03.0 "kleiner" ist als 23:52:26.0 und wüsste, dass dazwischen Mitternacht war.
Dürfen wir denn nicht davon ausgehen, dass wenn eine Nachricht A vor einer Nachricht B geschickt wird, sie auch vor B ankommt, oder zumindest nicht Stunden später?!
-
Printkey schrieb:
Hi,
ich suche einen Algorithmus der mir hilft herauszufinden ob ein Tag vorbei ist,
ich bekomme Zeiten z.B.23:41:23.0
23:51:03.0
23:51:26.0
00:01:03.0
00:01:29.0
00:11:03.0Was heisst Du "bekommst" die Zeiten.
Worauf und was genau programmierst Du?
Ist Dein problem, dass eine Nachricht über nen Tag später kommen kann?Wenn die Zeiten der Nachricht beigefügt werden, die Du geschickt bekommst, dann schmeiss sie weg und hol die lieber ne Systemzeit. Die kannst Du dir im Format vergangene Zeit nach 1970 holen, also eindeutig und nicht von Mitternacht abhängig.
Gibt es diese Systemzeit nicht, dann nimm doch einfach ne logische Zeit, indem Du einfach bei Eintreffen einer Mail nen Zähler hochzählst.Wenn das alles nicht geht, dann poste, mal was Du genau machen willst.
-
TomasRiker schrieb:
Printkey schrieb:
ich bekomme Zeiten z.B.
23:41:23.0
23:51:03.0
23:51:26.0
00:01:03.0
00:01:29.0
00:11:03.0Diese Zeiten sind doch geordnet. Bei der vierten Nachricht würde man sehen, dass 00:01:03.0 "kleiner" ist als 23:52:26.0 und wüsste, dass dazwischen Mitternacht war.
Dürfen wir denn nicht davon ausgehen, dass wenn eine Nachricht A vor einer Nachricht B geschickt wird, sie auch vor B ankommt, oder zumindest nicht Stunden später?!Jester hat es doch schon erwähnt, wenn eine falsche Zeit dabei ist kann man das nicht auseinander halten. Das sind Zeiten von Telegrammen die gesendet werden (Sendestempel), mit dieser Zeit muss ich arbeiten. Aber Jester bestätigt mir das was ich vermutet hatte: Ich kann nur grob schätzen ob ein Tag vorbei ist, oder ob es sich um einen falschen Zeitstempel handelt.
Und das machts wieder nicht einfacher
-
Kommen denn "falsche Zeiten" vor?
-
Theoretisch dürften sie nicht vorkommen, dass soll ich ja überprüfen.
D.h. ich weiß nicht ob es Mitternacht war oder eine falsche Zeit
-
Naja, wenn Du jetzt weißt, daß es sich bei falschen Zeiten nur um max. 1 Stunde handeln kann ist ja alles in Butter: Bei mehr als einer Stunde war's Mitternacht und alles ist in Ordnung.
-
Das sind ja immer die tollsten Aufgaben, nämlich die wo es tausende Ausnahmen und Regelungen gibt die keiner kennt und ich solls richten
Habs jetzt aber so gemacht das ich 3 Stunden toleranz einräume, ansonsten ist es ein neuer Tag. Anders geht es ja nicht