from datetime import datetime hour = ["twelve", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine", "ten", "eleven"] letters = "ITLISASAMPMACQUARTERDCTWENTYFIVEXHALFSTENFTOPASTERUNINEONESIXTHREEFOURFIVETWOEIGHTELEVENSEVENTWELVETENSEOCLOCK" def get_time_in_words(time=None): if not time: time = datetime.now() print(time) h,m = hour[time.hour%12], time.minute if time.second > 30: m += 1 m = round(m/5)*5 if m == 0: return f"it is {h} oclock" elif m == 5: return f"five past {h}" elif m == 10: return f"ten past {h}" elif m == 15: return f"quarter past {h}" elif m == 20: return f"twenty past {h}" elif m == 25: return f"twentyfive past {h}" elif m == 30: return f"half past {h}" elif m == 35: return f"twentyfive to {h}" elif m == 40: return f"twenty to {h}" elif m == 45: return f"quarter to {h}" elif m == 50: return f"ten to {h}" elif m == 55: return f"five to {h}" if __name__ == "__main__": print(get_time_in_words())