Pythonでストップウォッチ
参考サイトを見ながら時間の取得、ストップウオッチをテキストベースで作っていきます。
テキストベースということでColabで実行していきます。
まずは時間の取得から。一番簡単なのは
import time
nowTime = time.time()
print(nowTime)
1644148424.3030994
と何だかわからない数字がでてきます。
これでも時間の経過を計算するときには使えますが、普通の状態、日時で取得したいです。そうするには、
import datetime
dateTimeNow = datetime.datetime.now()
print(dateTimeNow)
とすれば今の日付時間が出てきます。
日本の時間を確実に取得するには以下を実行。
import datetime
import pytz
now = datetime.datetime.now(pytz.timezone('Asia/Tokyo'))
print(now)
とでました。こちらが正確な今の時間です。環境によって"datetime"だけでは取得はできない場合があるのです。
時間の取得が少しわかったところで
ストップウオッチ
ストップウオッチはスタートしてストップするまでの時間がわかることが最低条件です。これを実現する方法として
スタートした時間をまず記録する。
ストップした時の時間を記録する
ストップした時間からスタートした時間をひく
この時間の差分が欲しい時間ということになります。
これをコードにしていきます。まず時間はtime()を使うので最初にimportします。
import time
最初にスタートボタンを押したらその時間を記録したいのですが、スタートする仕掛けを作らないと行けないので、今回はコマンドラインで作っているのでスタートのタイミングをinput()を使うことでreturnすることで開始することができます。
import time
print("returnでスタート")
start = input()
print("start")
これで"return"することでプログラムがスタートとし、順次動くようになります。この場合はコンソールには"start"と表示されます。
開始されたと同時に変数startTimeに取得した時間を記録します。
startTime = time.time()
試しに2秒後にストップしてみます。time.sleep(2)を使います。このコマンドで()の中、今は"2"となって入りので2秒、"待ち"2秒待つことになります。
まったあとに変数stopTimeに止まった時間を記録します’
stopTime = time.time()
最後に時間の差分を出力されます。
print(stopTime - startTime)
全コードは以下
startTime = time.time()
time.sleep(2)
stopTime = time.time()
print(stopTime - startTime)
2秒sleepさせた時間差はというと。
とでました。
time.sleep(2)を使って時間をずらしているので"2"秒ぐらいの時間差が出ると良いので、2.00という数字が出力できたので正確に測れているようです。
これでスタート、ストップの経過時間をはかる仕組みができました。