Takes a number of seconds i.e. “120000002” and converts into “3y 42w 2d 21h 20m 2s”.
#!/usr/bin/python3 def timeify(seconds): from collections import OrderedDict from math import floor units = dict() units["s"] = 1 units["m"] = 60 units["h"] = 60 * units["m"] units["d"] = 24 * units["h"] units["w"] = 7 * units["d"] units["y"] = 52 * units["w"] result = [] for unit in reversed(units): if (s:=floor(seconds / units[unit])) != 0: result.append(str(s)+unit) seconds = seconds - s * units[unit]; return (" ".join(result)) print (timeify(120000002));