2016-08-07 3 views
2

私はこれまでのところこのコードを持っています。雇われたマシンの請求情報を印刷するプログラムを書く必要があります。私はそれがコストはまだ同じになるように、0時21分00秒私はコンピュータを使用した時間数を計算するプログラムを書く必要がありますが、私は行くことができません23:59:59

が、私はそれを必要とする形式にする必要がありますされ

hours = 23 
minutes = 81 
seconds = 0 
=================================== 
    Total time: 24:21:00 
    Cost: $101376 
=================================== 

問題の出力を生成

hours = 23 
minutes = 81 
seconds = 0 

seconds_in_minute = 60 
seconds_in_hour = 3600 

final_seconds = seconds % 60 
final_seconds2 = ((2 - len(str(final_seconds))) * "0") + str(final_seconds) 
extra_minutes = int(seconds/60) 
final_minutes = (minutes + extra_minutes) % 60 
final_minutes2 = ((2 - len(str(final_minutes))) * "0") + str(final_minutes) 
extra_hours = int(minutes/60) 
final_hours = (hours + extra_hours) 
final_hours2 = ((2 - len(str(final_hours))) * "0") + str(final_hours) 

cost_for_seconds = 2 
cost_for_seconds_in_full_minute = 1.6 
cost_for_seconds_in_full_hour = 1.2 
seconds_cost = cost_for_seconds * final_seconds 
minutes_cost = cost_for_seconds_in_full_minute * (final_minutes * seconds_in_minute) 
hours_cost = cost_for_seconds_in_full_hour * (final_hours * seconds_in_hour) 

cost_for_seconds = 2 
cost_for_seconds_in_full_minute = 1.6 
cost_for_seconds_in_full_hour = 1.2 
seconds_cost = cost_for_seconds * final_seconds 
minutes_cost = cost_for_seconds_in_full_minute * (final_minutes * seconds_in_minute) 
hours_cost = cost_for_seconds_in_full_hour * (final_hours * seconds_in_hour) 


print("hours =", hours) 
print("minutes =", minutes) 
print("seconds =", seconds) 
print("=" * 35) 
print(" ", " ", "Total time: ", final_hours2, ":", final_minutes2, ":", final_seconds2 , sep = "") 
print(" ", " ", "Cost: ", "$", int(seconds_cost + minutes_cost + hours_cost), sep = "") 
print("=" * 35) 

、時間は24時間以上表示されることはありません。

答えて

2

あなたが探しているのはモジュロ操作だと思います。ただ、24時間ごとに1日を追加

final_hours = final_hours % 24

あなたの最後の時間は常に0 beetween値と

+0

私はなぜこれについて考えなかったのかわかりません。どうもありがとうございました。私はかなり馬鹿だと感じる。 –

+0

問題はありません;)次回は覚えています。 「間違いを犯して学ぶ」 – Omar

0

23になります:

final_hours計算した後、あなたは何をする必要がある

正規化するコードスニペットを次に示します。seconds, minutes, hours, days

extra_minutes, seconds = divmod(seconds, 60) 
extra_hours, minutes = divmod(minutes + extra_minutes, 60) 
extra_days, hours = divmod(hours + extra_hours, 24) 
days += extra_days 
MM:SSゼロ詰めフォーマット:

"{:02d}:{:02d}:{:02d}".format(hours, minutes, seconds) 

はそれが役に立てば幸い

、ここでは、HHの時間の文字列を作るための方法です。

関連する問題