# This would probably be a lot easier to do using the timedate library and timedelta
# or something along those lines, but I actually quite like this approach to the challenge.
# I originally had a variable called remainder that stored the number of seconds after each
# subtraction, but quickly realized it was redundant, once "seconds" is smaller than 60, we
# can simply return the seconds variable itself, as it will always fit the criteria.
def make_readable(seconds):
hours = 0 # A counter that tracks the number of hours
minutes = 0 # A counter that tracks the number of minutes
while seconds >= 3600: # Check that there is at least 1 hour worth of seconds left
seconds -= 3600 # Subtract exactly 1 hour from the amount of seconds
hours += 1 # Add 1 to the counter that tracks hours
while seconds >= 60: # Check that there is at least 1 minute worth of seconds left
seconds -= 60 # Subtract exactly 1 minute from the amount of seconds.
minutes += 1 # Add 1 to the counter that tracks minutes
if hours < 10:
hours = "0" + str(hours) # Some simple formatting to get the HH:MM:SS output we want
if minutes < 10:
minutes = "0" + str(minutes) # Some simple formatting to get the HH:MM:SS output we want
if seconds < 10:
seconds = "0" + str(seconds) # Some simple formatting to get the HH:MM:SS output we want
return "{}:{}:{}".format(hours, minutes, seconds) # Finally we return the formatted string
Comments