NEWS
[gelöst] Zeiten bzw. Zahlen auf bzw. abrunden.
-
Hallo. Ich bräuchte bitte wieder mal eure Hilfe.
Und zwar habe ich eine beliebige Uhrzeit (z.B. 13:07 Uhr) und möchte diese auf die nächste halbe Stunde auf bzw. abrunden (in diesem Fall auf 13:00 Uhr).Das zweite ist etwas ähnliches allerdings nicht mit einer Uhrzeit sondern mit einer Zahl. die auf die nächste Hunderter auf bzw. abgerundet werden soll.
z.B. soll 1345 auf 1300 abgerundet werden. oder 1472 auf 1500 aufgerundet.Wie kann ich diese beiden Sachen am einfachsten über Blocklys lösen?
-
@manfredhi sagte in Zeiten bzw. Zahlen auf bzw. abrunden.:
z.B. soll 1345 auf 1300 abgerundet werden. oder 1472 auf 1500 aufgerundet.
Math.round(val / 100) * 100
-
@manfredhi sagte in Zeiten bzw. Zahlen auf bzw. abrunden.:
Und zwar habe ich eine beliebige Uhrzeit (z.B. 13:07 Uhr) und möchte diese auf die nächste halbe Stunde auf bzw. abrunden (in diesem Fall auf 13:00 Uhr).
Vorschlag
<xml xmlns="https://developers.google.com/blockly/xml"> <variables> <variable id="}hP8,vo1lYsah^NO+d]?">t</variable> <variable id="19ZUx*O~IH3i-oAW{A?7">arr</variable> <variable id="()qj);fR2`uhDS$5!V.u">std</variable> <variable id="uNKA[L*UcXhGl!BW#oi]">min</variable> </variables> <block type="procedures_defreturn" id="bC3Bo*,hALU=[p4F+Q#B" x="63" y="113"> <mutation> <arg name="t" varid="}hP8,vo1lYsah^NO+d]?"></arg> </mutation> <field name="NAME">rundeZeit</field> <comment pinned="false" h="80" w="160">Describe this function...</comment> <statement name="STACK"> <block type="variables_set" id="n}:l?DDe{=awxE)h$LSL"> <field name="VAR" id="19ZUx*O~IH3i-oAW{A?7">arr</field> <value name="VALUE"> <block type="lists_split" id="JiRrQ~hjHC5;f)Jlb%tA"> <mutation mode="SPLIT"></mutation> <field name="MODE">SPLIT</field> <value name="INPUT"> <block type="variables_get" id="vmdUMI}cm1*Q@t{E(Tm_"> <field name="VAR" id="}hP8,vo1lYsah^NO+d]?">t</field> </block> </value> <value name="DELIM"> <shadow type="text" id=")s!BpH/sulzVn4A*$c+x"> <field name="TEXT">:</field> </shadow> </value> </block> </value> <next> <block type="variables_set" id="4}(mh5Kh)/viP`ol.yBp"> <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field> <value name="VALUE"> <block type="convert_tonumber" id="2RRH``;80kiy@}oi(j//"> <value name="VALUE"> <block type="lists_getIndex" id="}3Bo^;+3`=r2/;P0(xL#"> <mutation statement="false" at="false"></mutation> <field name="MODE">GET</field> <field name="WHERE">FIRST</field> <value name="VALUE"> <block type="variables_get" id="!qy_,?RCK|MUq7k/w!B8"> <field name="VAR" id="19ZUx*O~IH3i-oAW{A?7">arr</field> </block> </value> </block> </value> </block> </value> <next> <block type="variables_set" id="U7$-zF~4C]P)uOVoylM$"> <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field> <value name="VALUE"> <block type="convert_tonumber" id="kW7a$aOHGDL;9GzUG~]`"> <value name="VALUE"> <block type="lists_getIndex" id="g8D%*JN]L`nFhW}VKkoe"> <mutation statement="false" at="false"></mutation> <field name="MODE">GET</field> <field name="WHERE">LAST</field> <value name="VALUE"> <block type="variables_get" id="xn`O6$bV)/rEf}/v!a+_"> <field name="VAR" id="19ZUx*O~IH3i-oAW{A?7">arr</field> </block> </value> </block> </value> </block> </value> <next> <block type="controls_if" id="S3D#MWi@gvhyl)JAPT!W"> <mutation elseif="1" else="1"></mutation> <value name="IF0"> <block type="logic_compare" id="uY^$!x%*#xEG_[0ba!i="> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="Df8#dyVGco/i)ET1ulPw"> <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field> </block> </value> <value name="B"> <block type="math_number" id="6E{$zt`u_VfI:4FKj^PL"> <field name="NUM">15</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id="9cZkI0)v^,R|(65SleLH"> <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field> <value name="VALUE"> <block type="math_number" id="Gzf9er%k$,00cjau52Pt"> <field name="NUM">0</field> </block> </value> </block> </statement> <value name="IF1"> <block type="logic_between" id="iK[qVXp8H~yMrAWM:W[]"> <field name="MIN_OPERATOR">LE</field> <field name="MAX_OPERATOR">LT</field> <value name="MIN"> <block type="math_number" id=":OwN(Q?i-vm8x:crP`_5"> <field name="NUM">15</field> </block> </value> <value name="VALUE"> <shadow type="math_number" id="osk~GdV;_?9_$O[bMKFt"> <field name="NUM">42</field> </shadow> <block type="variables_get" id="b]sP^X}%OX8[`uoQ)DN#"> <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field> </block> </value> <value name="MAX"> <block type="math_number" id="H^:l$;XVhrl;-)b=;ypg"> <field name="NUM">45</field> </block> </value> </block> </value> <statement name="DO1"> <block type="variables_set" id="=f3{?@3xL|5bM({!d1|?"> <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field> <value name="VALUE"> <block type="math_number" id="t0U}`Zt}x3A3zNy2tMNJ"> <field name="NUM">30</field> </block> </value> </block> </statement> <statement name="ELSE"> <block type="math_change" id="OwzDjjii4!jbx8R3K@uj"> <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field> <value name="DELTA"> <shadow type="math_number" id="-5FBhx@*%53`Gq^|da]5"> <field name="NUM">1</field> </shadow> </value> <next> <block type="variables_set" id=".AJ0oCvsL)n+(JO*p5I@"> <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field> <value name="VALUE"> <block type="math_number" id="us5J3$D=%+HaWK[YRkIR"> <field name="NUM">0</field> </block> </value> <next> <block type="controls_if" id="CVW=df0H9tE5agdmURKO"> <value name="IF0"> <block type="logic_compare" id="y3HyiE797YkD8/tE0ECg"> <field name="OP">GT</field> <value name="A"> <block type="variables_get" id="/.k15@cm1RhE4f:m)p|~"> <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field> </block> </value> <value name="B"> <block type="math_number" id="n|v@?)^U.o8a)zd~jv=R"> <field name="NUM">24</field> </block> </value> </block> </value> <statement name="DO0"> <block type="variables_set" id=",Q^J;.EISWT)d1Vgcn]c"> <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field> <value name="VALUE"> <block type="math_number" id="N[u%O]MG+_54-([jv!{f"> <field name="NUM">0</field> </block> </value> </block> </statement> </block> </next> </block> </next> </block> </statement> </block> </next> </block> </next> </block> </next> </block> </statement> <value name="RETURN"> <block type="text_join" id="e?(%0btnpngkps|*4?SM"> <mutation items="3"></mutation> <value name="ADD0"> <block type="logic_ternary" id="cnhN]ZsitmX68t++uCZq"> <value name="IF"> <block type="logic_compare" id="A=/v={n0i[QksFfhmP6y"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="{u/y#=!JTXP+ix^c{t!s"> <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field> </block> </value> <value name="B"> <block type="math_number" id="hZ^3v`+s.OM;tG=ieRAb"> <field name="NUM">10</field> </block> </value> </block> </value> <value name="THEN"> <block type="text_join" id="7,$^N{%^w`l%4D#-;GN="> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="(?1OBd9-EOPh8O2b~|CD"> <field name="TEXT">0</field> </block> </value> <value name="ADD1"> <block type="variables_get" id="}Rr5?EJZW;pQFgpIx%C4"> <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field> </block> </value> </block> </value> <value name="ELSE"> <block type="variables_get" id="+bJ|ERQMaTtb8IeWnNv2"> <field name="VAR" id="()qj);fR2`uhDS$5!V.u">std</field> </block> </value> </block> </value> <value name="ADD1"> <block type="text" id="^sS4$DCm^%jJY%.?^YUA"> <field name="TEXT">:</field> </block> </value> <value name="ADD2"> <block type="logic_ternary" id="_}yW;Bfb@*-Oa)LyHi*)"> <value name="IF"> <block type="logic_compare" id="xF(*h`iXv4aezvu:A{tL"> <field name="OP">LT</field> <value name="A"> <block type="variables_get" id="pcUu-QouZ|6/?lY?#fic"> <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field> </block> </value> <value name="B"> <block type="math_number" id="1.x/eQ/A@^dttooO-{5P"> <field name="NUM">10</field> </block> </value> </block> </value> <value name="THEN"> <block type="text_join" id="D25{EUXZ[kK`uSo4]@C8"> <mutation items="2"></mutation> <value name="ADD0"> <block type="text" id="JEDTE28z#^FBp_-B6zn!"> <field name="TEXT">0</field> </block> </value> <value name="ADD1"> <block type="variables_get" id=",2t~|7r]nAl{%%~2kr#["> <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field> </block> </value> </block> </value> <value name="ELSE"> <block type="variables_get" id="z2+]t^Z$}bVfY?Xsm#_V"> <field name="VAR" id="uNKA[L*UcXhGl!BW#oi]">min</field> </block> </value> </block> </value> </block> </value> </block> <block type="debug" id="y^m+k:5;Gp`P;3Ef.(P8" x="63" y="838"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="cjv#Iyr4^S@r{+oTIsco"> <field name="TEXT">test</field> </shadow> <block type="procedures_callreturn" id="UP@^`|/EvMT|e)_ZZ;Q("> <mutation name="rundeZeit"> <arg name="t"></arg> </mutation> <value name="ARG0"> <block type="text" id="_sGVxD0$ihe0?H*J[Y|Q"> <field name="TEXT">13:40</field> </block> </value> </block> </value> <next> <block type="debug" id="~l,,r51i`vnUP+iuFp9s"> <field name="Severity">log</field> <value name="TEXT"> <shadow type="text" id="cjv#Iyr4^S@r{+oTIsco"> <field name="TEXT">test</field> </shadow> <block type="procedures_callreturn" id="nLpT80!zd}M:wf0b}b!7"> <mutation name="rundeZeit"> <arg name="t"></arg> </mutation> <value name="ARG0"> <block type="text" id="b*VK6`jG!Sk}M:}g{]v)"> <field name="TEXT">15:45</field> </block> </value> </block> </value> </block> </next> </block> </xml>
EDIT: Muss natürlich
>=
24 sein... -
@manfredhi sagte: beliebige Uhrzeit (z.B. 13:07 Uhr) und möchte diese auf die nächste halbe Stunde auf bzw. abrunden
Eine Version:
-
@paul53 sagte in Zeiten bzw. Zahlen auf bzw. abrunden.:
Eine Version:
Tricky! Ist auf jeden Fall die schönere Lösung. Hab mich kurz gefragt warum das klappt Deswegen:
https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md#getDateObject
-
@haus-automatisierung und @paul53 : Vielen Dank für Eure Lösungen. Funktionieren perfekt.