使用Python计算,停车场收费,一小时内免费,超过一小时后第一小时按4块收费,往后每小时收2块,后面不足一小时按一小时算,20块封顶。 求大神~
分段计算就行
<span class="hljs-keyword">import</span> math
x=<span class="hljs-built_in">float</span>(<span class="hljs-built_in">input</span>())
<span class="hljs-built_in">sum</span>=<span class="hljs-number">0</span>
<span class="hljs-keyword">if</span> x<=<span class="hljs-number">1</span>:
<span class="hljs-built_in">sum</span>=<span class="hljs-number">0</span>
<span class="hljs-keyword">elif</span> x<=<span class="hljs-number">2</span>:
<span class="hljs-built_in">sum</span>+=<span class="hljs-number">4</span>
<span class="hljs-keyword">else</span>:
<span class="hljs-built_in">sum</span>+=<span class="hljs-number">4</span>
<span class="hljs-built_in">sum</span>+=math.ceil(x-<span class="hljs-number">2</span>)*<span class="hljs-number">2</span>
<span class="hljs-keyword">if</span> <span class="hljs-built_in">sum</span><=<span class="hljs-number">20</span>:
<span class="hljs-built_in">print</span>(<span class="hljs-built_in">sum</span>)
<span class="hljs-keyword">else</span>:
<span class="hljs-built_in">print</span>(<span class="hljs-number">20</span>)
<span class="hljs-attribute">import</span> datetime
<span class="hljs-attribute">import</span> math
<span class="hljs-attribute">start</span> = datetime.datetime.fromisoformat('<span class="hljs-number">2021</span>-<span class="hljs-number">06</span>-<span class="hljs-number">25</span> <span class="hljs-number">01</span>:<span class="hljs-number">10</span>:<span class="hljs-number">00</span>')
<span class="hljs-attribute">end</span> = datetime.datetime.strptime('<span class="hljs-number">2021</span>-<span class="hljs-number">6</span>-<span class="hljs-number">25</span> <span class="hljs-number">9</span>:<span class="hljs-number">30</span>:<span class="hljs-number">00</span>','%Y-%m-%d %H:%M:%S')
<span class="hljs-attribute">start_stamp</span> = datetime.datetime.timestamp(start)
<span class="hljs-attribute">end_stamp</span> = datetime.datetime.timestamp(end)
<span class="hljs-attribute">hour</span> = math.ceil((end_stamp-start_stamp)/<span class="hljs-number">60</span>/<span class="hljs-number">60</span>)
<span class="hljs-attribute">money</span> = <span class="hljs-number">0</span> if hour<=<span class="hljs-number">1</span> else <span class="hljs-number">4</span> if hour<=<span class="hljs-number">2</span> else (hour-<span class="hljs-number">2</span>)*<span class="hljs-number">2</span>+<span class="hljs-number">4</span>
<span class="hljs-attribute">money</span> = money if money<<span class="hljs-number">20</span> else <span class="hljs-number">20</span>
<span class="hljs-attribute">print</span>(hour,money)
主要是时间计算,获得开始时间,获得结束时间,然后转成时间戳,计算出小时数向上取整,然后就是分段计算以及封顶