NEWS
Wie viel Tage bis Termin
-
@david-g Im Prinzip brauchst doch eigentlich nur den timestamp vom Termin und die aktuelle Zeit. Beides normierst Du auf Tagesanfang. Die Differenz teilst Du durch die Länge eines Tages.
Wenn Du egal welche Uhrzeit einfach nur das Datum eingibst bei der Erstellung eines Date Objektes:
const d = new Date(2018, 11, 24);dann bekommst immer die Zeit um 0:00. :)
Sprich heute
const d = new Date(2021, 08, 06);morgen:
const t = new Date(2021, 08, 07);Da beide Uhrzeiten ignoriert werden, vergleichst Du bei Deinem Beispiel:
23 Uhr haben und ich morgen früh um 0:30 Uhr einen Termin habe soll 1
im Prinzip die Zeitspanne von heute um 0:00 mit morgen 0:00. Die Differenz ist dann vom timestamp immer der Unterschied von:
1000 * 60 * 60 * 24 =86.400.000
Wenn Du also die Differenz Math.floor(Diff/86.400.000), sollte die gewünschte Zahl rauskommen.
Im Prinzip geht bei der Date Erstellung auch die amerikanische Schreibweise mit String:

-
@david-g Im Prinzip brauchst doch eigentlich nur den timestamp vom Termin und die aktuelle Zeit. Beides normierst Du auf Tagesanfang. Die Differenz teilst Du durch die Länge eines Tages.
Wenn Du egal welche Uhrzeit einfach nur das Datum eingibst bei der Erstellung eines Date Objektes:
const d = new Date(2018, 11, 24);dann bekommst immer die Zeit um 0:00. :)
Sprich heute
const d = new Date(2021, 08, 06);morgen:
const t = new Date(2021, 08, 07);Da beide Uhrzeiten ignoriert werden, vergleichst Du bei Deinem Beispiel:
23 Uhr haben und ich morgen früh um 0:30 Uhr einen Termin habe soll 1
im Prinzip die Zeitspanne von heute um 0:00 mit morgen 0:00. Die Differenz ist dann vom timestamp immer der Unterschied von:
1000 * 60 * 60 * 24 =86.400.000
Wenn Du also die Differenz Math.floor(Diff/86.400.000), sollte die gewünschte Zahl rauskommen.
Im Prinzip geht bei der Date Erstellung auch die amerikanische Schreibweise mit String:

Danke für die Antwort.
Bekommt man sowas auch in Blockly hin?
In JS bin ich nicht wirklich fit.Hab schon ein (für mich) recht umfangreiches Skript wo ich es gerne einbauen würde.
Der Termin in der Zukunft liegt im ical Adapter als Datumsobjekt mit Zeit vor.
EDIT:
Ich glaube ich habe es hinbekommen.
Deine Rechnung konnte ich mit Konvertierungen nachvollziehen.
Oder sieht da jemand einen Fehler?
Gerundet habe ich, da immer ein 0,09.... rausgekommen ist. Vermutlich die Zeit die das script läuft. -
Danke für die Antwort.
Bekommt man sowas auch in Blockly hin?
In JS bin ich nicht wirklich fit.Hab schon ein (für mich) recht umfangreiches Skript wo ich es gerne einbauen würde.
Der Termin in der Zukunft liegt im ical Adapter als Datumsobjekt mit Zeit vor.
EDIT:
Ich glaube ich habe es hinbekommen.
Deine Rechnung konnte ich mit Konvertierungen nachvollziehen.
Oder sieht da jemand einen Fehler?
Gerundet habe ich, da immer ein 0,09.... rausgekommen ist. Vermutlich die Zeit die das script läuft.@david-g Ich bin kein blockly Spezialist und bevor ich mir wieder einen abringe, da ist @paul53 schneller. ;)
Wichtig ist bei der Differenzberechnung, dass das Datum aktuell und das Datum des Termins halt immer auf 0:00 normiert werden. Das kann ich an dem Blockly nicht erkennen.
-
@david-g Ich bin kein blockly Spezialist und bevor ich mir wieder einen abringe, da ist @paul53 schneller. ;)
Wichtig ist bei der Differenzberechnung, dass das Datum aktuell und das Datum des Termins halt immer auf 0:00 normiert werden. Das kann ich an dem Blockly nicht erkennen.
Hab ich auch probiert.
Aber nicht gefunden.Geht um eine Wochenübersicht in telegram.
Hab hinter den Termin zum testen das Ergebnis der Formel gepackt (noch ohne Runden und das +1).

Mehrere der Termine haben komplett verschiedene Uhrzeiten. Dafür finde ich die Nachkommastellen zu identisch, wie das es nicht stimmt.....
-
Hab ich auch probiert.
Aber nicht gefunden.Geht um eine Wochenübersicht in telegram.
Hab hinter den Termin zum testen das Ergebnis der Formel gepackt (noch ohne Runden und das +1).

Mehrere der Termine haben komplett verschiedene Uhrzeiten. Dafür finde ich die Nachkommastellen zu identisch, wie das es nicht stimmt.....
@david-g Ich hab den Adapter nicht im Einsatz und bin wie gesagt nicht der Blockly-Typ - aber ich werde mir mal den Adapter installieren. Bin ja auch Apple User. ;)
-
@david-g Ich hab den Adapter nicht im Einsatz und bin wie gesagt nicht der Blockly-Typ - aber ich werde mir mal den Adapter installieren. Bin ja auch Apple User. ;)
-
Der Name des ical Adapters ist irreführend finde ich.
Hab ihn lange nicht installiert, da ich dachte er wäre eben für ical von Apple.Ich nutze den Adapter mit Gmail und hab keinen Apple Gerät ^^.
Wird verschiedenes unterstützt.
@david-g Ok - konnte trotzdem meinen Apple Kalender einbinden. Unter data bekomme ich meine Termine angezeigt.
Unter events sehe ich nichts. Wie sehen denn Deine Terminobjekte aus?
-
Hallo,
ich probiere mich grad dumm und dämlich.
Aber irgendwie will es nicht wie ich.Ich würde gerne ausrechnen, wie viele Tage es noch bis zu einem Termin sind.
Allerdings nicht absolut sondern relativ (keine Ahnung ob das die richtige Beschreibung ist 😅).
Wenn wir jetzt 23 Uhr haben und ich morgen früh um 0:30 Uhr einen Termin habe soll 1 raus kommen. Wenn der Termin morgen um kurz vor Mitternacht ist auch.
Übermorgen dann eine 2, egal welche Uhrzeit.
Wenn der Termin noch heute ist soll das Ergebniss 0 sein. -
@david-g sagte: ausrechnen, wie viele Tage es noch bis zu einem Termin sind.
In welchem Format liegt der Termin vor?
Die Termine sehen so aus.
Hole ich in Blockly mit einer Schleife{'date':'11.08.2021 ','event':'Dr. Xxx','_class':'ical_Termine ','_date':'2021-08-10T22:00:00.000Z','_end':'2021-08-11T22:00:00.000Z','_section':'','_IDID':'xxxxxxx@google.com','_allDay':true,'_rule':' ','location':'','_calName':'Termine','_calColor':'#000000'}Ich verwende das
_date -
Der Name des ical Adapters ist irreführend finde ich.
Hab ihn lange nicht installiert, da ich dachte er wäre eben für ical von Apple.Ich nutze den Adapter mit Gmail und hab keinen Apple Gerät ^^.
Wird verschiedenes unterstützt.
@david-g Ich bekomme als Termin in einem Array nur dieses Format:
{"date":"Morgen 22:00-23:00","event":"Testtermin","_class":"ical_calendar1 ical_tomorrow","_date":"2021-08-07T20:00:00.000Z","_end":"2021-08-07T21:00:00.000Z","_IDID":"54E24963-51C8-47AF-AEC0-642F6BA1525D","_allDay":false,"_private":false,"_rule":" ","location":"","_calName":"calendar1","_calColor":"#000000"}in dem table Datenpunkt:
Meinst Du dann dieses Datumsformat:
2021-08-07T20:00:00.000ZDann brauchst nur den vorderen Teil bist zum T und Du hast das ISO Format:

Aber nachdem @paul53 eh schon involviert ist, weiß er sicher wie man diese beiden Datumsobjekte erstellt. ;)
-
Hallo,
ich probiere mich grad dumm und dämlich.
Aber irgendwie will es nicht wie ich.Ich würde gerne ausrechnen, wie viele Tage es noch bis zu einem Termin sind.
Allerdings nicht absolut sondern relativ (keine Ahnung ob das die richtige Beschreibung ist 😅).
Wenn wir jetzt 23 Uhr haben und ich morgen früh um 0:30 Uhr einen Termin habe soll 1 raus kommen. Wenn der Termin morgen um kurz vor Mitternacht ist auch.
Übermorgen dann eine 2, egal welche Uhrzeit.
Wenn der Termin noch heute ist soll das Ergebniss 0 sein.@david-g
die Lösung inklusive vis widgets findest du im mytime-adapter.
das einfachste wäre das countdown plain widget, das dir schön runterzählt wieviel jahre,tage,monate,stunden es noch dauert. du definierst einmal in der adapter konfiguration die dauer.
über einen befehlssyntax in einem bestimmten datenpunkt kannst du auch einen absoluten zeitpunkt in der zukunft definierenhttps://github.com/oweitman/iobroker.mytime
Der Adapter ist auch im beta/latest repository verfügbar.
-
@david-g Ich bekomme als Termin in einem Array nur dieses Format:
{"date":"Morgen 22:00-23:00","event":"Testtermin","_class":"ical_calendar1 ical_tomorrow","_date":"2021-08-07T20:00:00.000Z","_end":"2021-08-07T21:00:00.000Z","_IDID":"54E24963-51C8-47AF-AEC0-642F6BA1525D","_allDay":false,"_private":false,"_rule":" ","location":"","_calName":"calendar1","_calColor":"#000000"}in dem table Datenpunkt:
Meinst Du dann dieses Datumsformat:
2021-08-07T20:00:00.000ZDann brauchst nur den vorderen Teil bist zum T und Du hast das ISO Format:

Aber nachdem @paul53 eh schon involviert ist, weiß er sicher wie man diese beiden Datumsobjekte erstellt. ;)
-
Die Termine sehen so aus.
Hole ich in Blockly mit einer Schleife{'date':'11.08.2021 ','event':'Dr. Xxx','_class':'ical_Termine ','_date':'2021-08-10T22:00:00.000Z','_end':'2021-08-11T22:00:00.000Z','_section':'','_IDID':'xxxxxxx@google.com','_allDay':true,'_rule':' ','location':'','_calName':'Termine','_calColor':'#000000'}Ich verwende das
_date -
@david-g sagte in Wie viel Tage bis Termin:
Genau, das meine ich.
@OliverIO
Probiere in meinen Skripten immer so wenig andere Adapter einzubinden wie nötig.
Es geht auch nicht um die VIS. Geht um eine Terminübersicht der kommenden Woche die ich per telegram versende. Über die Tage ermitteln ich die Termine für diesen Zeitraum.ok dann so
(new Date("01/03/2021") - new Date()) / 86400000
(Datum Zukunft - aktuelles Datum ) / Anzahl Millisekunden an einem Tag
Dein blocklyansatz sieht gut aus, bin da aber etwas lost.
Die Differenz kommt evtl daher, das wenn du das Datum so wie ich angegeben hast, immer 00:00 Uhr gemeint ist.die abarbeitung solch eines Befehls dauert auf meinem System ca 2 Millisekunden. Da dürfte keine solche Differenz von 0.09 Tagen ergeben.
-
@david-g

Also ich habs mit Z+2 hinbekommen, wenn man den ISO String benutzt.
Das Datum alleine nutzt nichts - weil irgendwas die Timezone dazurechnet und dann kommt immer 2:00 Uhr früh raus.
Ich schau mal ob irgendwas mit CET funktioniert, da absolute Zeitoffsets ja blöde sind.
-
@david-g

Also ich habs mit Z+2 hinbekommen, wenn man den ISO String benutzt.
Das Datum alleine nutzt nichts - weil irgendwas die Timezone dazurechnet und dann kommt immer 2:00 Uhr früh raus.
Ich schau mal ob irgendwas mit CET funktioniert, da absolute Zeitoffsets ja blöde sind.
-
@david-g

Also ich habs mit Z+2 hinbekommen, wenn man den ISO String benutzt.
Das Datum alleine nutzt nichts - weil irgendwas die Timezone dazurechnet und dann kommt immer 2:00 Uhr früh raus.
Ich schau mal ob irgendwas mit CET funktioniert, da absolute Zeitoffsets ja blöde sind.
@paul53 sagte in Wie viel Tage bis Termin:
@mickym sagte: Also ich habs mit Z+2 hinbekommen, wenn man den ISO String benutzt-
Dann stimmt es aber nur zur Sommerzeit.
Dann gibt man das einfach fix ein - das geht: Also aus dem Datestring den vorderen Teil vor dem T abschneiden und dann T00:00 anhängen.

-
@paul53 sagte in Wie viel Tage bis Termin:
@mickym sagte: Also ich habs mit Z+2 hinbekommen, wenn man den ISO String benutzt-
Dann stimmt es aber nur zur Sommerzeit.
Dann gibt man das einfach fix ein - das geht: Also aus dem Datestring den vorderen Teil vor dem T abschneiden und dann T00:00 anhängen.

-
Das habe ich beim rechnen mal probiert.
Hatte zu DD.MM.JJJJ konvertiert für das aktuelle Datum und den Termin, mit der Hoffnung dass dann die Uhrzeit ignoriert wird.
Wenn ich dann Termin-Uhrzeit rechne kommt NaN als Ergebniss.
@david-g Ich habs bald. ;) - bin halt als Blockly Laie etc. langsam - aber ich denke bin auf gutem Weg.
-
Das habe ich beim rechnen mal probiert.
Hatte zu DD.MM.JJJJ konvertiert für das aktuelle Datum und den Termin, mit der Hoffnung dass dann die Uhrzeit ignoriert wird.
Wenn ich dann Termin-Uhrzeit rechne kommt NaN als Ergebniss.
@david-g sagte: Hatte zu DD.MM.JJJJ konvertiert für das aktuelle Datum
Die Lösung mal getestet?

date: 11.08.2021 (00:00 Uhr Ortszeit)
Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.
Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.
Mit deinem Input könnte dieser Beitrag noch besser werden 💗
Registrieren Anmelden
