#!/usr/bin/python3 "Lists base-3 times of day in conventional notation." import sys def format(seconds): "Format a time of day as hh:mm:ss." hh, ss = divmod(seconds, 3600) mm, ss = divmod(ss, 60) return '%02d:%02d:%02d' % (hh, mm, ss) def baserep(n, k): "Represent n in base k." div, mod = divmod(n, k) digits = [] if div == 0 else baserep(div, k) digits.append(mod) return digits def base_9_time(seconds): digits = baserep(round(seconds * 3**10 / 86400), 9) while len(digits) < 5: digits = (0, *digits) return '%s%s_%s%s%s' % tuple(digits) def main(args): depth = int(args[1]) if len(args) == 2 else 3 divisor = 3**depth multiplier = 3**(10 - depth) for i in range(divisor): seconds = round(86400 * i / divisor) print(format(seconds), base_9_time(seconds)) if __name__ == '__main__': main(sys.argv)