Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- '''
- My playground to calculate the duration (in format hours:minutes:seconds) of travel time if my running speed is x and the distance is y
- '''
- def minutes_to_float(pace):
- '''
- (number) -> float
- Converts minutes (with seconds) to float minutes
- >>> minutes_to_float(5.30)
- 5.5
- >>> minutes_to_float(6.12)
- >> 6.2
- '''
- return (pace // 1) + (pace % 1) / 0.6
- def float_to_minutes(mins):
- '''
- (number) -> float
- Convert float minutes to minutes (with seconds)
- >>> float_to_minutes(5.5)
- 5.3
- >>> float_to_minutes(6.2)
- 6.12
- '''
- return (mins // 1) + (mins % 1) * 0.6
- def duration_in_minutes(pace, distance):
- '''
- (number, number) -> float
- Returns minutes (with seconds) how long it
- takes to travel, if speed is pace and
- length is distance
- >>> duration_in_minutes(5.4, 21.0975)
- 119.3315
- '''
- return float_to_minutes(minutes_to_float(pace) * distance)
- def get_hours(minutes):
- '''
- (number) -> int
- Returns an hours from given minutes
- >>> get_hours(119.3315)
- 1
- '''
- return int(minutes // 60)
- def get_minutes(minutes):
- '''
- (number) -> int
- Returns a minutes (from last hour) from given minutes
- >>> get_hours(119.3315)
- 59
- '''
- return int(minutes % 60)
- def get_seconds(minutes):
- '''
- (number) -> int
- Returns a seconds from given minutes
- >>> get_hours(119.3315)
- 33
- '''
- return int((minutes % 1) * 100)
- def minutes_to_tuple(minutes):
- '''
- (number) -> tuple
- Returns a tuple (hours, minutes, seconds)
- from given minutes
- >>> minutes_to_tuple(119.3315)
- (1, 59, 33)
- '''
- return (get_hours(minutes),
- get_minutes(minutes),
- get_seconds(minutes))
- def get_duration(pace, distance):
- '''
- (number, number) -> str
- Returns a string (hours:minutes:seconds)
- according to given pace and distance
- >>> get_duration(5.4, 21.0975)
- 1:59:33
- '''
- duration = duration_in_minutes(pace, distance)
- return '{0[0]}:{0[1]}:{0[2]}'.format(minutes_to_tuple(duration))
- pace = 5.4 # minutes per kilometer
- distance = 21.0975 # kilometers, half-marathon
- print get_duration(pace, distance)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement