Zeitenberechnung

Einrichtung, Anschluss und Programmierung der HomeMatic CCU

Moderator: Co-Administratoren

Antworten
MarKiesCo
Beiträge: 80
Registriert: 11.04.2023, 21:07
System: CCU
Hat sich bedankt: 34 Mal
Danksagung erhalten: 4 Mal

Zeitenberechnung

Beitrag von MarKiesCo » 11.02.2024, 17:37

Hi, irgendwie steh ich auf dem Schlauch, könnte jemand unterstützen wie ich die Zeit im Scrip-Editor so berechne, dass das gleiche Ergebnis wie jenes in Excel bekomme?
Die 2 Zeiten 'TMTEST1' und 'TMTEST2' dienen nur für meine Testzwecke. Ich suche eine Lösung wie ich die Uhrzeiten so berechne, dass sogar am Ende ein negativer Wert in dem Format angegeben werden kann. Möglichweise geht das nur alternativ dann mit "-"#, vielleicht habt ihr aber eine bessere Idee.

Die Aussage könnte dann heißen, dass der Vergleich zweier Zeiten negativ ist, wenn die Dauer eines zB. Wasserpumpvorganges im Vergleich zur vorrigen Dauer -00:01:30 sein kann, sozusagen 1,5 Minuten Kürzer war, was ich auch so darstellen möchte.

Editor:
Screenshot_Zeitenberechnung3.png

Excel:
Screenshot_Zeitenberechnung1.png
Screenshot_Zeitenberechnung1.png (18.41 KiB) 278 mal betrachtet
Testcode:

Code: Alles auswählen

string TMTEST1 = "00:06:00";
string TMTEST2 = "00:06:59";

var LastPTime = TMTEST1.ToTime().ToInteger().ToFloat();
var ActPTime = TMTEST2.ToTime().ToInteger().ToFloat();

var Tage1 = (((ActPTime - LastPTime)/3600)/24);
var ZeitFormat = Tage1.ToTime().Format("%H:%M:%S");

WriteLine(LastPTime );
WriteLine(ActPTime );
WriteLine(Tage1 );
WriteLine(ZeitFormat );

Benutzeravatar
Henke
Beiträge: 1538
Registriert: 27.06.2022, 20:51
System: CCU
Hat sich bedankt: 144 Mal
Danksagung erhalten: 312 Mal

Re: Zeitenberechnung

Beitrag von Henke » 11.02.2024, 18:24

0.000PI Tage ist kein Zeitstempel und kann nicht mit ToTime umgewandelt werden.

Falsch:

Code: Alles auswählen

var ZeitFormat = Tage1.ToTime().Format("%H:%M:%S");
Um eine Zeitspanne darzustellen, musst du das von Hand aufdröseln. Ist im Forum aber auch zu finden.

-126:12:59 also vor grob 126 Stunden hat nichts mit 18:24:12 Uhr zu tun.

Tyfys
Beiträge: 581
Registriert: 17.04.2021, 17:12
System: CCU
Hat sich bedankt: 29 Mal
Danksagung erhalten: 136 Mal

Re: Zeitenberechnung

Beitrag von Tyfys » 11.02.2024, 18:52

kleine Änderung deines Skripts:

Code: Alles auswählen

WriteLine("Hallo Welt!");
WriteLine("Hallo Welt!");
string TMTEST1= "10:06:00";
string TMTEST2 = "01:05:59";

var LastPTime = TMTEST1.ToTime().ToInteger();
var ActPTime  = TMTEST2.ToTime().ToInteger();

var Diff= (ActPTime - LastPTime)-3600;
var ZeitFormat = Diff.ToTime().Format("%H:%M:%S");
WriteLine(LastPTime );
WriteLine(ActPTime);
WriteLine(ZeitFormat );
funktioniert aber nur bei Zeitdifferenzen innerhalb 24 Stunden .
Bei grösseren Differenzen muss man mehr Aufwand betreiben.
(siehe Anmerkung von Henke)
Gruß
Harry

MarKiesCo
Beiträge: 80
Registriert: 11.04.2023, 21:07
System: CCU
Hat sich bedankt: 34 Mal
Danksagung erhalten: 4 Mal

Re: Zeitenberechnung

Beitrag von MarKiesCo » 11.02.2024, 20:41

vielen Dank für den Support. In dem Fall mach ich die Berechnungen einzeln, no prob, thx

Antworten

Zurück zu „HomeMatic Zentrale (CCU / CCU2 / CCU3 / Charly)“