import time
import datetime
class timer():
def start(self):
while 1:
x = datetime.datetime.utcnow()
print(x.strftime('%M.%S.%f'))
time.sleep(0.1)
worker = timer()
worker.start()
それは仕事をします。Python の精度は非常に限られていることに注意してください。より完全なタイマーを取得したい場合は、最後の既知のミリ秒 (1/1000 秒) を保存し、while 1
ループを作成して正確な時間量を待機する必要があります。その後、解放して 内の無限ループを続行しますstart()
。
線に沿った何か:
これにより、現在の時刻が出力されます
import time
import datetime
def getTime():
return int(round(time.time() * 1000))
class timer():
def start(self):
lastRun = getTime()
while 1:
while getTime() - lastRun < 100:
pass
lastRun = getTime()
x = datetime.datetime.utcnow()
print(x.strftime('%M.%S.%f'))
worker = timer()
worker.start()
これは、Python で得られる精度とほぼ同じです。
そして説明部分に:
x = datetime.datetime.utcnow()
x
現在の時刻を明らかにと呼ばれる変数に格納します。strftime
Pythonでは、変数は関数を持つ「オブジェクト」であり、この特定の変数はその内部で呼び出される関数です。
strftime
いくつかのパラメーターを取り、現在の時刻を読み取れるようにする文字列に変換します。この場合%M
、分を作成し、その後にドット、次に%S
秒、最後にドットとそれに続く%f
ミリ秒を作成します。
そしてもちろん、それは現在の時間に基づいています。何かが実行されている時間をカウントする必要がある場合は、 の代わりに関数のtime.time() - self.time
1 つに追加できます。これにより、何かが実行されている時間をカウントします。datetime.datetime
utcnow()
そしてこれがストップウォッチ
import time
import datetime
def getTime():
return int(round(time.time() * 1000))
class timer():
def __init__(self):
self.time = datetime.datetime.today()
def start(self):
lastRun = getTime()
while 1:
while getTime() - lastRun < 100:
pass
lastRun = getTime()
x = datetime.datetime.today() - self.time
print(x)
worker = timer()
worker.start()
コードはほぼ同じです。唯一の違いは、self.time
「起動時間」を格納する の使用です。 で減算now
しstartup time
ます。したがって、操作は次のようになります。
- 店の立ち上げ
- ループごとに、「今」を取得します
- now-startup=実行時間
- 結果を印刷すると、自動的に「0:00:01.800000」としてフォーマットされます