我正在尝试弄清楚如何解决我的问题,但它一直在失败。
所以我目前有这段代码:
@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)
但问题是,平均速度如此之高,速度是不正确的......现在,DB()
记录的MySQL DATETIME object
是什么。
看起来像是:datetime.now().strftime("%Y-%m-%d %H:%M:%S")
(2017-08-22 15:28:19
)
现在我想要的是,如代码中所述,是基于行进距离和时间的平均速度。距离以米为单位,时间应以秒为单位?
我在这里做错了什么?
答案 0 :(得分:1)
我没有MySQL数据库可用于测试您的代码,但是如果您可以将数据库中的start_time作为字符串读取,格式如" 2017-08-22 15:28:19& #34;然后以下示例显示如何进行速度计算:
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))
希望其中一些可能有用。