我正在编写一个程序,该程序可以从用户那里获取日期,时间,英里和英里/小时。借助此信息,我将以道路行驶的指示速度计算估计的到达日期,估计的到达时间,估计的小时和分钟。
我接受了用户输入的日期和时间,并将两者合并为一个datetime。我遇到的问题是,当我使用deltatime将小时和分钟添加到日期时间时,得到的答案不正确。预计出发日期显示为提前几天,而该日期只能是几个小时。例如,如果我输入2018-08-13作为出发日期,输入10:30 am作为出发时间,则我得到的日期是2018-08-22和07:30 am。显然不正确,截止到9天。在不同的日期,我得到的天数也有所不同。
代码:
def calcMinutes(estimates, miles, mph):
travTime = miles / mph
minutes = travTime % 1
minutes = round(minutes * 60)
return minutes
def calcHours(estimates, miles, mph):
travTime = miles / mph
hours = miles // mph
return hours
def calcTravTime(estimates, hours, minutes):
#add time to date and time
estArrivalTime = estimates + timedelta(hours = hours, minutes = minutes)
estArrivalTime = str(estArrivalTime)
estArrivalTime = datetime.strptime(estArrivalTime, '%Y-%m-%d %H:%M:%S')
return estArrivalTime
关于我在哪里出错的任何想法吗?我的逻辑有缺陷吗?
注意事项:如果我使用一个calc函数进行所有计算并返回小时,分钟和estArrivalTime,则日期和时间正确。但是,由于出现有关元组和字符串的错误,因此无法打印出需要的单个元素。
所需的输出: 时间:3 分钟:16 预计到达日期:2018-08-13 预计到达时间:1:30 pm