NEWS
[gelöst] Terminskript; Was läuft falsch
-
Ich habe ein Skript, mit welchem ich zu einem bestimmten Zeitpunkt aus einem Google-Kalender die Termine von heute und Morgen auslesen und diese an Telegram senden möchte.
Das Skript habe ich natürlich aus dem Forum übernommen, kann aber kein Javaskript.
Egal was ich an Tagen (
let AnzTage
) definiere, es werden mit heute immer 21 Tage ausgeworfen.let arr = getState('ical.1.data.table').val; let vUser = "Thomas"; let AnzTage = 1; // wie viele Tage sollen ausgelesen werden let vText = ""; //aktuelles Datum aktJahr = new Date().getFullYear(); aktMon = new Date().getMonth()+1; aktTag = new Date().getDate(); d3 = getDateObject(aktJahr+"-"+aktMon+"-"+aktTag+" 02:00:00"); // Datum aus ical arr.forEach(myFunction); function myFunction(item, i) { // date aus Array ermitteln aMon = (arr[i].date).substring(3, 5); aTag = (arr[i].date).substring(0, 2); d2 = getDateObject(aktJahr+"-"+aMon+"-"+aTag); // Tage ermitteln var t = Date.parse(d2) - Date.parse(d3); var days = Math.floor( t/(1000*60*60*24) ); // wenn kleiner x Tage dann dazu fügen if (days <= AnzTage) { log (aTag + "." + aMon + "." + " " + arr[i].event +"\n"); vText += (aTag + "." + aMon + "." + " " + arr[i].event +"\n"); } } // telegram senden vText = "<pre>📅 anstehende Termine:\n" + vText + "</pre>"; log (vText); sendTo('telegram', { user: vUser, text: vText, parse_mode: 'HTML' });
Ich bin mir sicher, dass hier jemand sofort den Fehler sieht.
-
@meister-mopper sofort wäre übertrieben. Das Skript liest das Datum und setzt dann das Jahr von Heute, wobei aus dem Termin für Morgen dann der 1.1.20**22** wird. Die anschliessende Subtraktion der Daten ist negativ und somit immer kleiner als die Anzahl deiner Tage. Sollte ab morgen erledigt sein
-
@fastfoot
Das leuchtet ein. Was muss ich jedoch tun, wenn das immer richtig angezeigt werden soll? -
@meister-mopper sagte in Terminskript; Was läuft falsch:
Das leuchtet ein. Was muss ich jedoch tun, wenn das immer richtig angezeigt werden soll?
ab morgen ist's ja richtig
Ansonsten warten bis jd. den Quark verbessert. Habe gerade wenig Zeit, sorry
-
@meister-mopper
du könntest auch eine weitere Instanz von iCal anlegen und dort 2 Tage für die Zukunft einstellen. Damit liefert ical auch nur die nächsten zwei Tage. -
@meister-mopper mal auf die Schnelle
-
@fastfoot sagte in Terminskript; Was läuft falsch:
mal auf die Schnelle
Für "auf die Schnelle" läuft das aber super gut.
Recht herzlichen Dank!