2017-06-07 10 views
0

私は小さなスクリプトのようなカウントダウンタイマーを作ろうとしています。ひねりでカウントダウンしようとしています

0 years left until your event. 
0 months left until your event. 
10 days left until your event. 
234 hours left until your event. 
14020 minutes left until your event. 
841166 seconds left until your event. 

「正常な」カウントダウンではありません。私はそれがこのようになりたい、秒の合計量、残っている分の総量など。今私はそれが実際にカウントダウンするように苦労しています。

def secondsLeft(eventDate): 
    while secondsUntil: 
     toPrint = "%s seconds left until your event." %(secondsUntil) 
     print(toPrint, end='\r') 
     time.sleep(1) 
     secondsUntil -= 1 

しかし、それはプリントアウトしていないtime.sleep(60)に置き換え、数分のために同じことをやろうとしているとき:ちょうど秒は、私はそのためのコードのこの部分を使用しています、正常に動作していますもう秒!

whileループと関係があると思います。しかし、私はそれについて何をすべきかわかりません...正しい方向への助けを感謝しています!

+2

明白ではありませんか? **秒数から分、時間などの数を計算します。 –

+2

あるいは、datetimeオブジェクトについて少し読んで、1つのdatetimeオブジェクトを使って計算を行い、必要な異なる粒度を使って計算してください。 –

+0

[信号サンプリングに一定精度でループして高精度でループする](https://stackoverflow.com/questions/26774186/looping-at-a-constant-rate-with-high-precision-for-signal-サンプリング) –

答えて

0

1分待つと、プログラム全体が1分間停止します。秒を減らすことはできません。あなたがしたいのは、1秒間だけインターラレーションを待ってからこの行を追加することです。mins, secs = divmod(secondsUntil, 60)。分の分を印刷できます。

+0

ありがとうございました。私はそれがどのように機能するか見ることができます。しかし、私はそれらを印刷したい方法で行を印刷するのに苦労しています。キャリッジリターンは私にトラブルを与えている、これに任意の選択肢はありますか? –

+0

CRがあなたにトラブルを与えていると言ったらどういう意味ですか? – EduardoMaia

関連する問題