Hallo Leute,
ich bin jetzt langsam am verzweifeln.
Wie kann ich per Homematic Script auf einfachem Weg das Datum morgen bzw gestern ermitteln?
Ich habe schon versuch per Berechnung anhand des Referenzdatums (1970) das Ganze zu ermitteln.
Aber irgenwie klappt es nicht mit dem Umformatieren der Variablen in Time und zurück zu Integer
Google kann mir diesmal leider auch nicht helfen.
Habt Ihr noch eine Lösung für mich?
VG
Script Datum Morgen
Moderator: Co-Administratoren
- blackhole
- Beiträge: 3734
- Registriert: 21.07.2015, 14:03
- System: CCU
- Hat sich bedankt: 188 Mal
- Danksagung erhalten: 588 Mal
Re: Script Datum Morgen
Beispiel-Skript (Morgen, Referenzdatum, Gestern):
Ausgabe:
Code: Alles auswählen
time test = @2015-12-01 11:30:00@;
WriteLine (test + 86400);
WriteLine (test);
WriteLine (test - 86400);
Code: Alles auswählen
2015-12-02 11:30:00
2015-12-01 11:30:00
2015-11-30 11:30:00
-
- Beiträge: 16
- Registriert: 08.04.2015, 12:57
Re: Script Datum Morgen
Hi blockhole,
danke für die schnelle Antwort.
Das klappt soweit.
Mein Problem ist, wie kriege ich
time VAR_DATUMHEUTE = system.Date("%d.%m.%Y") in das Time Format ohne das er auf 1970 umspringt?
Wenn ich es wie oben angegeben verwende wird VAR_DATUMHEUTE leider immer ein String.
Und somit verkettet er die Werte nur = 01.12.201586400
Mit .ToTime() springt er immer auf 1970.
VG
danke für die schnelle Antwort.
Das klappt soweit.
Mein Problem ist, wie kriege ich
time VAR_DATUMHEUTE = system.Date("%d.%m.%Y") in das Time Format ohne das er auf 1970 umspringt?
Wenn ich es wie oben angegeben verwende wird VAR_DATUMHEUTE leider immer ein String.
Und somit verkettet er die Werte nur = 01.12.201586400
Mit .ToTime() springt er immer auf 1970.
VG
-
- Beiträge: 16
- Registriert: 08.04.2015, 12:57
Re: Script Datum Morgen
Hallo,
ich habe eine Lösung gefunden und etwas verschlimmbessert.
Hier mein Script mit dem man Tage vor und zurück rechnen kann.
Wobei VAR_TAGEPLUS die Anzahl der Tage vorwärts und
VAR_TAGEMINUS die Anzahl der Tage rückwärts bestimmt
Auch ein blindes Huhn findet mal ein Korn
ich habe eine Lösung gefunden und etwas verschlimmbessert.
Hier mein Script mit dem man Tage vor und zurück rechnen kann.
Wobei VAR_TAGEPLUS die Anzahl der Tage vorwärts und
VAR_TAGEMINUS die Anzahl der Tage rückwärts bestimmt
Code: Alles auswählen
integer VAR_TAGEPLUS = 0;
integer VAR_TAGEMINUS = 0;
integer VAR_DATUMHEUTETEMP = system.Date("%F %X").ToTime();
var VAR_DATUMCALC_TEMP = VAR_DATUMHEUTETEMP + (86400 * VAR_TAGEPLUS) - (86400 * VAR_TAGEMINUS);
time VAR_DATUMCALC_TEMPTIME = VAR_DATUMCALC_TEMP;
string VAR_DATUMCALC = VAR_DATUMCALC_TEMPTIME.Format("%d.%m.%Y");
Re: Script Datum Morgen
Das mag zwar irgendwie funktionieren, ist aber nicht ganz korrekt. Es fehlen zwei Umwandlungen.
Code: Alles auswählen
integer VAR_TAGEPLUS = 0;
integer VAR_TAGEMINUS = 0;
integer VAR_DATUMHEUTETEMP = system.Date("%F %X").ToTime().ToInteger();
integer VAR_DATUMCALC_TEMP = VAR_DATUMHEUTETEMP + (86400 * VAR_TAGEPLUS) - (86400 * VAR_TAGEMINUS);
string VAR_DATUMCALC = VAR_DATUMCALC_TEMP.ToTime().Format("%d.%m.%Y");
Versionen: HM-CC-TC 2.1, HM-LC-Sw1 1.9, HM-CC-RT-DN 1.1, HM-MOD-RPI-PCB 1.2.1 (keine CCU)