fork download
  1. time_dictionary = {0: "",
  2. 1: "one",
  3. 2: "two",
  4. 3: "three",
  5. 4: "four",
  6. 5: "five",
  7. 6: "six",
  8. 7: "seven",
  9. 8: "eight",
  10. 9: "nine",
  11. 10: "ten",
  12. 11: "eleven",
  13. 12: "twelve",
  14. 13: "thirteen",
  15. 14: "fourteen",
  16. 15: "fifteen",
  17. 16: "sixteen",
  18. 17: "seventeen",
  19. 18: "eighteen",
  20. 19: "nineteen",
  21. 20: "twenty",
  22. 30: "thirty",
  23. 40: "forty",
  24. 50: "fifty"
  25. }
  26.  
  27.  
  28. def clock_to_time(time):
  29. hour, minute = time.split(":")
  30. hour = int(hour)
  31. minute = int(minute)
  32.  
  33. if 0 > minute > 60 or 0 > hour > 24:
  34. return "Invalid time!"
  35.  
  36. if hour == 12 and minute == 0:
  37. return "It's high noon!"
  38.  
  39. ret_string = "It's "
  40. post_fix = ""
  41.  
  42. # hour
  43. if hour == 0:
  44. hour += 12
  45. post_fix = " am"
  46. if hour > 12:
  47. post_fix = " pm"
  48. hour -= 12
  49. else:
  50. post_fix = " am"
  51.  
  52. ret_string += time_dictionary[hour]
  53.  
  54. # minute
  55. if minute == 0:
  56. pass
  57. elif minute < 10:
  58. ret_string += " oh" + " " + time_dictionary[minute]
  59. else:
  60. ret_string += " " + time_dictionary[int(str(minute)[0])* 10]
  61. if minute % 10 != 0:
  62. ret_string += "-" + time_dictionary[minute%10]
  63. ret_string += post_fix
  64.  
  65. return ret_string
  66.  
  67. test_cases = """00:00
  68. 01:30
  69. 12:05
  70. 14:01
  71. 20:29
  72. 21:00""".split('\n')
  73.  
  74. for test in test_cases:
  75. print(test, end=" - ")
  76. print(clock_to_time(test))
Success #stdin #stdout 0.01s 27720KB
stdin
Standard input is empty
stdout
00:00 - It's twelve am
01:30 - It's one thirty am
12:05 - It's twelve oh five am
14:01 - It's two oh one pm
20:29 - It's eight twenty-nine pm
21:00 - It's nine pm