所以这个想法非常简单(是的,它只是一个练习,不是真实的问题)。
有一个女孩的时钟是错误的,但她朋友的时钟总是正确的。当她离开家时,她记得她的时钟离开的时间,在她的朋友那里,她看到了她到达和离开的时间,一旦回到家,她再次看到了时间。这样,即使我们不知道她开多长时间车,我们也可以知道正确的时间。 例如,她在6:32离开,在她的地方,她在14:14与朋友一起到达并在17:21与朋友再次出发,并于13:29回到家。
她总共花费了6:57的时间,其中3:07与她的朋友在一起,其余的时间平均分配给2个车程的时间。
因此,如果将这段时间与您离开朋友家的时间相加,则找到实际时间。
现在我之前已经解决了这个问题,但那时我不知道datetime函数,所以我想也许我可以用这种方法解决它。我的烦恼是datetime过了午夜就会卡住
例如,当她在家中出发时是9:04,在6:15到达并在14:54离开以返回5:13时,我得到正确的时间是8:57,而实际上应该是20:57。
也许是我的datetime.timedelta中的某些东西,但我不知道如何解决。任何建议都非常欢迎 非常感谢
我目前的代码:
有一个女孩的时钟是错误的,但她朋友的时钟总是正确的。当她离开家时,她记得她的时钟离开的时间,在她的朋友那里,她看到了她到达和离开的时间,一旦回到家,她再次看到了时间。这样,即使我们不知道她开多长时间车,我们也可以知道正确的时间。 例如,她在6:32离开,在她的地方,她在14:14与朋友一起到达并在17:21与朋友再次出发,并于13:29回到家。
她总共花费了6:57的时间,其中3:07与她的朋友在一起,其余的时间平均分配给2个车程的时间。
因此,如果将这段时间与您离开朋友家的时间相加,则找到实际时间。
现在我之前已经解决了这个问题,但那时我不知道datetime函数,所以我想也许我可以用这种方法解决它。我的烦恼是datetime过了午夜就会卡住
例如,当她在家中出发时是9:04,在6:15到达并在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)