2017-08-22 17 views
0

私はここで私の問題をどのように修正できるかを試していますが、失敗しています。 DB()レコードが持っているものを、今....時間と距離に基づく平均速度 - Python

@staticmethod 
def avg_speed(): 
    # Speed = Distance ÷ Time 
    cur_time = datetime.datetime.now().replace(microsecond=0) 
    db_time_record = DB().start_time() 
    time_diff = cur_time - db_time_record 
    # print(str(time_diff).split(":")) 
    total_distance = DB().get_total_distance() 
    result = (total_distance/(float(time_diff.total_seconds()))) * 60 
    return round(result, 2) 

しかし、事は、速度が正確であることは不可能である、平均速度が非常に高いので、次のとおりです。

は、だから私は現在、このコードを持っていますa MySQL DATETIME object

次のようになります。datetime.now().strftime("%Y-%m-%d %H:%M:%S")2017-08-22 15:28:19

今、私が欲しいもの、コードに記載されているように、走行距離や時間に基づいて平均速度です。距離はメートルで、時間は秒でなければなりませんか?

私はここで間違っていますか?

答えて

1

コードをテストするためのMySQLデータベースがありませんが、start_timeを "2017-08-22 15:28:19"のような文字列でDBから読み取ることができます例は速度計算を行う方法を示しています:

import datetime 

# (simulate reading time from database as string) 
time_string_from_db = "2017-08-22 15:28:19" 

dbtime    = datetime.datetime.strptime(time_string_from_db, "%Y-%m-%d %H:%M:%S") 
cur_time   = datetime.datetime.now().replace(microsecond=0) 

print ("dbtime:  " + repr(dbtime)) 
print ("cur_time: " + repr(cur_time)) 

elapsed = cur_time - dbtime 
seconds = elapsed.total_seconds() 

print ("elapsed:  " + repr(elapsed)) 
print ("seconds:  " + repr(seconds)) 

distance = 500 
speed = distance/seconds 

print ("speed:  " + repr(speed)) 

このうちのいくつかが役に立ちます。

+0

できるだけ早くテストします:) – Robin

関連する問題