python - 错误消息时差
问题描述
我有一个关于代码的问题。我刚刚开始了编程课程,这显然不是一个非常有效的代码。它是更大代码的一部分,但这是我得到错误输出的地方。
我有一个以公里为单位的距离,以公里/小时为单位的速度和到达时间 (arr) 作为列表 [月、日、小时、分钟] 我使用 y = time.time()-1577793600 来获取今年以秒为单位的当前时间. (我要减去的数字是自 Unix 纪元时间以来的秒数。(我知道这是一种可怕的做法,但我认为这有点道理)。另外,time_to_destination 是到达目的地所需的时间秒。
import time
distance = 1000
speed = 3
arrival = [10, 13, 11, 30]
y = time.time()-1577793600
time_to_destination = (distance*1000) / (speed / 3.6)
arr = ((arrival[0]-1)*(30*24*3600)+ (arrival[1]-1)*(24*3600) + (arrival[2])*(3600)+(arrival[3]))
ti = arr - time_to_destination
if arr < y:
return 'Date is in the past'
elif y > ti:
return 'You are too late'
但是,这应该返回“你来得太晚了”,因为到达时间不是过去的时间,但我无法以我给定的速度完成它。但是,输出是“过去的日期”。为什么会这样?
解决方案
关于您的变量:
1577793600
实际上是 2019 年 12 月 31 日星期二 12:00:00 PM。不应该这样1577836800
吗?
分钟参数也没有发生转换。您需要将分钟乘以 60。
arr = ((arrival[0]-1)*(30*24*3600)+ (arrival[1]-1)*(24*3600) + (arrival[2])*(3600)+(arrival[3]*(60)))
使用 30 作为每月天数也是一个近似值,可能会给您错误的结果。
我真的建议查看datetime 模块
推荐阅读
- php - 多维 3d 数组 php/mysql
- python - 如何在 Mac 上下载 Python.h 头文件?
- javascript - JSPDF 返回使用 ApexCharts 图表创建 PDF 的脚本错误
- android - 如何检查电话号码是否是Android中有效的whatsapp号码?
- python - 如何修复奇怪的模型精度图?
- python - 从 pandas 读取一个大的 CSV 文件后,我在我的工作簿中得到了一个荒谬的文件输出
- python - 熊猫:融化具有相同索引的多个列
- laravel - Git - 用新版本替换 Laravel 安装
- coldfusion - Lucee cfmail 消息 ID
- sprite - 如何在godot上做复合精灵