gpt4 book ai didi

python - 过了午夜怎么知道时差? Python

转载 作者:太空宇宙 更新时间:2023-11-03 11:41:14 24 4
gpt4 key购买 nike

所以这背后的想法很简单(是的,这是一个练习,而不是一个现实生活中的问题)

所以有一个女孩的时钟是假的,但她 friend 的时钟总是正确的。所以当她离开家时,她记得她离开时钟的时间。在她的 friend 那里,她看到了她到达和离开的时间,一旦回到家,她又看到了时间。这样即使我们不知道她开了多久我们也能知道正确的时间。例如,她 6 点 32 分离开她的住处,14 点 14 分和她的 friend 一起到达,17 点 21 分和她的 friend 离开,13 点 29 分回到家。

总耗时 6:57,其中 3:07 与她的 friend 一起度过,其余时间除以 2,这样您就知道 1 次汽车旅行的时间。

因此,如果您将这次时间与您离开 friend 家的时间相加,您就会找到实际时间。

现在我以前解决过这个问题,但当时我不知道 datetime 函数,所以我想也许我可以那样解决它。我的日期时间问题是当午夜过去时它会卡住

例如,当她 9:04 离开家,6:15 到达 friend ,14:54 离开,5:13 回家,我得到正确的时间是 8:57,而实际时间应该是 20 :57.

也许它在我的 datetime.timedelta 中,但我不知道如何解决。

非常欢迎任何建议非常感谢

此时我的代码:

import datetime

# function nessesary to convert timedelta back into time
def convert_timedelta(duration):
days, seconds = duration.days, duration.seconds
hours = days * 24 + seconds // 3600
minutes = (seconds % 3600) // 60
seconds = (seconds % 60)
return hours, minutes, seconds

# input
hour_department_home = int(input("Hour of department at home: "))
minutes_department_home = int(input("Minutes of department at home: "))

hour_arrival_friend = int(input("Hour of arrivel friends house: "))
minutes_arrival_friend = int(input("Minutes of department friends house: "))

hour_department_friend = int(input("Hour of arrivel friends house: "))
minutes_department_friend = int(input("Minutes of arrivel friends house: "))

hour_arrival_home = int(input("Hour of arrivel home : "))
minutes_arrival_home = int(input("Minutes of arrivel home: "))

# putting into hours
department_home = datetime.time(hour_department_home,minutes_department_home,second=0)
arrival_friend = datetime.time(hour_arrival_friend,minutes_arrival_friend)
department_friend = datetime.time(hour_department_friend,minutes_department_friend)
arrival_home= datetime.time(hour_arrival_home,minutes_arrival_home)

# time at friends
uur_1,uur_2 = datetime.timedelta(hours=department_friend.hour),datetime.timedelta(hours = arrival_friend.hour)
hours_with_friend = uur_1-uur_2

min_1,min_2= datetime.timedelta(minutes=department_friend.minute),datetime.timedelta(minutes=arrival_friend.minute)
min_with_friend = min_1-min_2

total_time_with_friend = hours_with_friend + min_with_friend

# time away
uur_1h,uur_2h = datetime.timedelta(hours=arrival_home.hour),datetime.timedelta(hours = department_home.hour)
hours_away_from_home = uur_1h-uur_2h

min_1h,min_2h= datetime.timedelta(minutes=arrival_home.minute),datetime.timedelta(minutes=department_home.minute)
min_away_from_home = min_1h-min_2h

total_time_away = hours_away_from_home + min_away_from_home

duration_drive = (total_time_away-total_time_with_friend) /2

the_time = datetime.timedelta(hours=department_friend.hour,minutes=department_friend.minute) +duration_drive

hours, minutes, seconds = convert_timedelta(the_time)

print(hours)
print(minutes)

最佳答案

使用 datetime.datetime 而不是 datetime.time,它会考虑日期的变化

date_1 = datetime.datetime(year1, month1, day1, hour1, minutes1, seconds1)
date_2 = datetime.datetime(year2, month2, day2, hour2, minutes2, seconds2)
timedelta = date_2 - date_1

然后你有 timedelta.secondstimedelta.daystimedelta.microsecondstimedelta.total_seconds()如果你需要一个 float

关于python - 过了午夜怎么知道时差? Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49004771/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com