#python
#python
Вопрос:
Как мне добавить временную дельту, чтобы я мог добавить значение дельты к значению даты и времени и распечатать его? Например, расчетное время в пути: 6 минут: 15,0 Предполагаемая дата прибытия: 2018-11-30 Предполагаемое время прибытия: 05:30 утра
Но моя программа просто отображает это: Расчетное время в пути Часов: 3 минуты: 4 `
from datetime import datetime,timedelta
import locale
mph = 0
miles = 0
def get_departure_time():
while True:
date_str = input("Estimated time of departure (HH:MM AM/PM): ")
try:
depart_time = datetime.strptime(date_str, "%H:%M %p")
except ValueError:
print("Invalid date format. Try again.")
continue
return depart_time
def get_departure_date():
while True:
date_str = input("Estimated date of departure (YYYY-MM-DD): ")
try:
depart_date = datetime.strptime(date_str, "%Y-%m-%d")
except ValueError:
print("Invalid date format. Try again. ")
continue
return depart_date
def distance():
while True:
miles = input("Enter miles to be travelled: ")
try:
miles = int(miles)
if miles <= 0:
print("Enter a Number Greater than 0.n")
else:
return miles
except ValueError:
print("Format Error . Please Try againn")
continue
def speed():
while True:
speed = input("Enter miles per hour: ")
try:
mph = int(speed)
if mph <= 0:
print("Enter a Number Greater than 0.n")
else:
return mph
except ValueError:
print("Format Error . Please Try againn")
continue
pass
def travel_calculations(miles,mph):
hours = int(miles/mph)
minutes = int(((miles/mph)-hours)*60)
time_travelled = timedelta(hours=hours, minutes=minutes)
print("nnEstimated travel time")
print("Hours: ", hours)
print("Minutes: ", minutes)
def main():
print("Arrival Time Estimatorn")
depart_time = get_departure_time()
depart_date = get_departure_date()
miles = distance()
mph = speed()
travel_calculations(miles,mph)
return
if __name__ == "__main__":
main()
`
Комментарии:
1. Вы получаете
depart_date
иdepart_time
, но не используете их ни для чего. Вы пробовали использовать их в сочетании со своимиtimedelta
?2. Я новичок в python, не могли бы вы привести мне пример?
Ответ №1:
Объедините depart_time
и depart_date
с одним datetime
объектом в вашей main()
функции и предоставьте его travel_calculations()
def main():
...
departure = depart_date.replace(hour=depart_time.hour, minute=depart_time.minute)
...
travel_calculations(miles, mph, departure)
Обратите внимание, вероятно, было бы лучше получить время и дату одновременно и создать один datetime
объект вместо того, чтобы впоследствии добавлять их вместе.
Затем, в travel_calculations()
, добавьте свой timedelta
к datetime
объекту
def travel_calculations(miles, mph, departure):
...
eta = departure time_travelled
Затем в переменной доступно расчетное время прибытия eta
.