NEWS
[gelöst] Minuten in Tage, Stunden und Minuten anzeigen
-
Hallo.
Ich habe einen State der hat einen Minutenwert.
In VIS habe ich dann ein Basic-HTML worin folgendes steht:{v:0_userdata.0.Haussteuerung.Zutritt_seit; parseInt(v) > 0 ? parseInt(parseFloat(v)%(60)) : 0} Std. {v:0_userdata.0.Haussteuerung.Zutritt_seit; (parseFloat(v))%(60)} min.
Damit wird mir der Minutenwert dann in Stunden und Minuten angezeigt wird. Das funktioniert soweit auch ganz gut.
Wenn allerdings mehr als 24 Stunden vergangen sind, dann sollten auch die Tage angezeigt werden.Wie kann ich das jetzt erweitern?
-
Hat niemand eine Lösung wie ich einen Datenpunkt der Minuten enthält, in der VIS dann in Tage, Stunden und Minuten anzeigen kann ?
-
@manfredh-1 Warum machst Du es nicht, wie Du es zuvor gemacht hast;
{v:0_userdata.0.Haussteuerung.Zutritt_seit; parseInt(v) > 0 ? parseInt(parseFloat(v)%(1440)) : 0} Tage {v:0_userdata.0.Haussteuerung.Zutritt_seit; parseInt(v) > 0 ? parseInt(parseFloat(v)%(60)) - (parseInt(parseFloat(v)%(1440))*24) : 0} Std. {v:0_userdata.0.Haussteuerung.Zutritt_seit; (parseFloat(v))%(60)} min.
-
@mickym sagte in Minuten in Tage, Stunden und Minuten anzeigen:
@manfredh-1 Warum machst Du es nicht, wie Du es zuvor gemacht hast;
{v:0_userdata.0.Haussteuerung.Zutritt_seit; parseInt(v) > 0 ? parseInt(parseFloat(v)%(1440)) : 0} Tage {v:0_userdata.0.Haussteuerung.Zutritt_seit; parseInt(v) > 0 ? parseInt(parseFloat(v)%(60)) : 0} Std. {v:0_userdata.0.Haussteuerung.Zutritt_seit; (parseFloat(v))%(60)} min.
...wollt ich gerade auch schreiben
....
-
@villarriba Wobei ganz stimmt es nicht weil er bei den Stunden noch die Tage abziehen muss. - Habs gerade versucht zu editieren - hoffe ich hab mich mit den Klammern nicht vertan.
-
@mickym
..den Rest der Tage noch mal durch 60, vielleicht?!{v:0_userdata.0.Haussteuerung.Zutritt_seit; parseInt(v) > 0 ? parseInt(parseFloat(v)%(1440)) : 0} Tage
{v:0_userdata.0.Haussteuerung.Zutritt_seit; parseInt(v) > 0 ? (parseInt(parseFloat(v)%(1440))/60) : 0} Std.
{v:0_userdata.0.Haussteuerung.Zutritt_seit; (parseFloat(v))%(60)} min. -
@mickym
Hallo das funktioniert nicht. der Datenpunkt hat 4681 Minuten. In der VIS wird mir dann angezeigt: "361 Tage -8663 Std. 1 min" -
den Rest der Tage muss mit 1440 multiplizieren und dann durch 60
Gruß Tom
-
@manfredh-1
...ich hab das mal in einem blockly aufgelöst...
sind bei mir 3 Tage 6 Stunden und eine Minute....var minuten, tage, h, m; minuten = 4681; tage = Math.round(parseFloat(minuten) / 1440); h = Math.round(parseFloat((minuten % 1440)) / 60); m = minuten % 60; console.log(([tage,' Tage, ',h,' Stunden, ',m,' Minuten'].join('')));
-
@villarriba
So habe ich das auch errechnet. -
@villarriba
ja im javascript hab ich es auch probiert da wandelt er die Minuten vom Datenpunkt richtig um.
Aber in der VIS geht das nicht. -
@manfredh-1
mit der Script Sprache bin ich nicht ganz fit, aber die Klammer um die 1440 mal weg lassen. vielleicht passt dann. nur ein versuch
-
So ich denke ich habs - habe auf die Schnelle statt Division dieses Modulo verwendet:
so müsste es gehen:
{v:0_userdata.0.Haussteuerung.Zutritt_seit; parseInt(v) > 0 ? parseInt(parseFloat(v) / 1440) : 0} Tage {v:0_userdata.0.Haussteuerung.Zutritt_seit; parseInt(v) > 0 ? parseInt((parseFloat(v) % 1440) / 60) : 0 } Std. {v:0_userdata.0.Haussteuerung.Zutritt_seit; (parseFloat(v))%(60)} min.
EDIT: Verbessert - manchmal muss ich mich selbst erst über Umwege rantasten.
-
also doch zu viele Klammern. Bei den Minuten sieht es auch noch nach zu viel aus.
-
@tt-tom Jo da hab ich es aber lassen - aber sollte auch komplett ohne gehen:
{v:0_userdata.0.Haussteuerung.Zutritt_seit; parseFloat(v) % 60 } min.
-
@mickym
danke habe selber wieder was lernen können. Das Board ist hier echt Klasse.jetzt muss nur noch @ManfredH-1 prüfen ob es bei ihm passt. Schönen Abend noch
-
@mickym
@TT-Tom
@Villarriba
Hallo. Jetzt klappts doch. ich hatte in meiner VIS irrtümlich zwei Felder übereinander gelegt und dabei immer das falsche Feld verwendet.
Vielen DANK für Eure Hilfe. Super !!!