Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
First solution in Clear category for Broken Clock by tokiojapan55
def broken_clock(starting_time, wrong_time, error_description):
to_seconds = lambda t:(int(t[:2])*60+int(t[3:5]))*60+int(t[6:])
to_seconds2 = lambda s,u: int(s) * (3600 if u.find('hour')>=0 else 60 if u.find('minute')>=0 else 1)
to_clock = lambda s:"{:02}:{:02}:{:02}".format(int(s)//3600,(int(s)%3600)//60,int(s)%60)
err = error_description.split()
ds,ps = to_seconds2(err[0],err[1]),to_seconds2(err[3],err[4])
ss,ws = to_seconds(starting_time),to_seconds(wrong_time)
return to_clock(ss+(ws-ss)/(ds+ps)*ps)
June 17, 2020