Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Convert Hour and Minutes to Text Format in Python



Suppose we have two inputs hour and minutes. We have to show the time in text format. This is like −

  • 8:00 : 8'o clock
  • 8:01 : one minute past eight
  • 8:10 : ten minutes past eight
  • 8:15 : quarter past eight
  • 8:30 : half past eight
  • 8:40 : twenty minutes to nine
  • 8:45 : quarter to nine
  • 8:47 : thirteen minutes to nine
  • 8:28 : twenty eight minutes past eight

So, if the input is like h = 9, m = 42, then the output will be eighteen minutes to ten

To solve this, we will follow these steps −

  • text:= a list containing texts for 30 different numeric values as follows: ["one", "two", "three", "four", "five", "six", "seven", "eight","nine","ten", "eleven", "twelve", "thirteen", "fourteen", "quarter", "sixteen","seventeen", "eighteen", "nineteen", "twenty", "twenty-one","twenty-two", "twenty-three", "twenty-four", "twenty-five","twenty-six", "twenty-seven", "twenty-eight", "twenty-nine", "half"]
  • op:= blank string
  • if m is same as 0, then
    • op := text[h - 1] concatenate " o' clock"
  • otherwise when m is same as 30, then
    • op := text[m - 1] concatenate " past " concatenate text[h - 1]
  • otherwise when m is same as 1, then
    • op := text[m - 1] concatenate " minute past " concatenate text[h - 1]
  • otherwise when m is same as 15, then
    • op := text[m - 1] concatenate " past " concatenate text[h - 1]
  • otherwise when m − 30 is non-zero, then
    • op := text[m - 1] concatenate " minutes past " concatenate text[h - 1]
  • otherwise when m is same as 45, then
    • op := "quarter to " concatenate text[h]
  • otherwise
    • op := text[(60 - m) -1] concatenate " minutes to " concatenate text[h]
  • return op

Example

Let us see the following implementation to get better understanding −

def solve(h, m):
   text=["one", "two", "three", "four", "five", "six", "seven", "eight","nine","ten", "eleven", "twelve", "thirteen", "fourteen", "quarter", "sixteen","seventeen", "eighteen", "nineteen", "twenty", "twenty-one","twenty-two", "twenty-three", "twenty-four", "twentyfive"," twenty-six", "twenty-seven", "twenty-eight", "twenty-nine", "half"]

   op=""
   if (m == 0):
      op = text[h - 1] + " o' clock"
   elif (m == 30):
      op = text[m - 1]+ " past " + text[h - 1]
   elif (m == 1):
      op = text[m - 1] + " minute past " + text[h - 1]
   elif (m == 15):
      op = text[m - 1]+ " past " + text[h - 1]
   elif (m < 30):
      op = text[m - 1] + " minutes past " + text[h - 1]
   elif (m==45):
      op = "quarter to " + text[h]
   else:
      op = text[(60 - m)-1] + " minutes to " + text[h]
   return op

h = 9
m = 42
print(solve(h, m))

Input

9, 42

Output

eighteen minutes to ten
Updated on: 2021-10-07T12:42:35+05:30

583 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements