FHEM Forum

FHEM - Entwicklung => FHEM Development => Thema gestartet von: CoolTux am 15 September 2018, 07:50:21

Titel: 2 unixzeiten vergleichen ob sie den selbigen Tag haben
Beitrag von: CoolTux am 15 September 2018, 07:50:21
Hallo,

Ich habe echte Probleme damit 2 unixzeiten zu überprüfen ob beide auf den selben Tag fallen.
Meine einzige Idee ist mit 0 an zu fangen, also 01.01.1970 00:00:00 und dann immer einen Tag zu ermitteln mit 1+86400. Also 1Tag = 8640 zweiter Tag dann 8640*2 und so weiter. Was denkt ihr, kann das so gehen?
Gibt es da nichts einfacheres?



Grüße
Titel: Antw:2 unixzeiten vergleichen ob sie den selbigen Tag haben
Beitrag von: Dr. Boris Neubert am 15 September 2018, 08:00:39
In Perl?
Titel: Antw:2 unixzeiten vergleichen ob sie den selbigen Tag haben
Beitrag von: CoolTux am 15 September 2018, 08:16:17
Ja bitte  ;D
Titel: Antw:2 unixzeiten vergleichen ob sie den selbigen Tag haben
Beitrag von: CoolTux am 15 September 2018, 08:30:15

my $time1 = int(1536992634/86400);
my $time2 = int(1537048801/86400);



print $time1 . ' und ' . $time2 . "\n";


Sollte mir ja eigentlich helfen können. Macht es aber nicht. time1 ist aktuell 15.09.2018 - 08:23:54 und time2 16.09.2018 - 00:00:01 also ein nächster tag. Dennoch ergibt die Rechnung 17789 und 17789
Also selber Tag.
Titel: Antw:2 unixzeiten vergleichen ob sie den selbigen Tag haben
Beitrag von: Dr. Boris Neubert am 15 September 2018, 08:33:26
http://perldoc.perl.org/functions/localtime.html (http://perldoc.perl.org/functions/localtime.html)

Argument von localtime() ist die Unix-Zeit in Sekunden seit der Epoche.

Titel: Antw:2 unixzeiten vergleichen ob sie den selbigen Tag haben
Beitrag von: Dr. Boris Neubert am 15 September 2018, 08:34:57
Zitat von: CoolTux am 15 September 2018, 08:30:15
Sollte mir ja eigentlich helfen können. Macht es aber nicht. time1 ist aktuell 15.09.2018 - 08:23:54 und time2 16.09.2018 - 00:00:01 also ein nächster tag. Dennoch ergibt die Rechnung 17789 und 17789
Also selber Tag.

Zeitzonenproblem? Unix-Zeit sind Sekunden seit der Epoche in UTC.
Titel: Antw:2 unixzeiten vergleichen ob sie den selbigen Tag haben
Beitrag von: CoolTux am 15 September 2018, 08:44:46
ich nehme mir erstmal nur die Zeiten von hier

https://www.unixtime.de/

Scheint aber in der Tat so zu sein. Dann muß ich mal mit den Zeiten schauen die ich von meinem Modul bekomme. Meine Rechnung scheint erstmal so zu gehen. Danke Boris für den Denkanstoß
Titel: Antw:2 unixzeiten vergleichen ob sie den selbigen Tag haben
Beitrag von: CoolTux am 15 September 2018, 09:25:31
Ich bekomme ne Kriese.


my $unixtime    = 1537032420;
my $oldunixtime = 1537032360;



print "plus 86400 \n"
unless( ($unixtime > ($oldunixtime + 900) or $unixtime == $oldunixtime) and int(gettimeofday() / 86400) == int($unixtime / 86400) );


print int(gettimeofday() / 86400) . "\n";
print int($unixtime / 86400) . "\n";


Ausgabe

plus 86400
17789
17789


Wieso sieht unless den and Teil ans Wahr an wo er doch unwahr sein sollte.
Titel: Antw:2 unixzeiten vergleichen ob sie den selbigen Tag haben
Beitrag von: Sidey am 15 September 2018, 09:50:38
Es ist noch früh, aber ich sehe folgendes:

Unixtime ist größer als oldunixtime . Darauf prüfst Du und es kommt true heraus.
Das oder brauchen wir jetzt nicht mehr betrachten.
Im Und Teil lässt zu prüfen, ob bei der Division durch 86400 die gleiche Ganzzahl heraus kommt. Solange beide Parameter (unixtime und gettimeofday) das gleiche Ergebnis bei der Division geben kommt true heraus.

Grüße Sidey

Gesendet von meinem XT1650 mit Tapatalk

Titel: Antw:2 unixzeiten vergleichen ob sie den selbigen Tag haben
Beitrag von: Sidey am 15 September 2018, 09:56:37
Ich hätte da noch eine nicht von mir getestete dee:

Wenn das Datum ISO-8601 in einer Variable entspricht (YYYY-MM-DD), dann kannst Du mit gt oder lt Operatoren gegen eine weitere Variable vergleichen.


Ich glaube, das reduziert die Komplexität enorm.

Gruß Sidey

Gesendet von meinem XT1650 mit Tapatalk

Titel: Antw:2 unixzeiten vergleichen ob sie den selbigen Tag haben
Beitrag von: CoolTux am 15 September 2018, 10:39:42
Hallo,

Vielen Dank für die guten Tipps und Sichtweisen. Ich habe nun eine für mich annehmbare Möglichkeit gefunden um meine beobachteten Situationen abfangen zu können.
Hoffe ich  ;D

Ich wünsche Euch einen erholsames Wochenende.



Grüße