# Convert given time into words

Given a time in the format of hh:mm (12-hour format) 0 < hh < 12, 0 <= mm < 60. The task is to convert it into words as shown:
Examples :

```Input : h = 5, m = 0
Output : five o' clock

Input : h = 6, m = 24
Output : twenty four minutes past six```

Corner cases are m = 0, m = 15, m = 30 and m = 45.

```6:00 six o'clock
6:10 ten minutes past six
6:15 quarter past six
6:30 half past six
6:45 quarter to seven
6:47 thirteen minutes to seven```

The idea is to use the if-else-if statement to determine the time in words. According to the above-given example, on the basis of minutes, we can categorize time in words into 8, which are minutes equal to 0, 15, 30, 45, 1, 59, and in a range less than 30 or greater than 30. Check the value of minutes and print accordingly.
Below is the implementation of this approach:

## C++

 `// C++ program to convert time into words ``#include ``using` `namespace` `std; `` ` `// Print Time in words. ``void` `printWords(``int` `h, ``int` `m) ``{ ``    ``char` `nums[][64] = { ``"zero"``, ``"one"``, ``"two"``, ``"three"``, ``"four"``, ``                        ``"five"``, ``"six"``, ``"seven"``, ``"eight"``, ``"nine"``, ``                        ``"ten"``, ``"eleven"``, ``"twelve"``, ``"thirteen"``, ``                        ``"fourteen"``, ``"fifteen"``, ``"sixteen"``, ``"seventeen"``, ``                        ``"eighteen"``, ``"nineteen"``, ``"twenty"``, ``"twenty one"``, ``                        ``"twenty two"``, ``"twenty three"``, ``"twenty four"``, ``                        ``"twenty five"``, ``"twenty six"``, ``"twenty seven"``, ``                        ``"twenty eight"``, ``"twenty nine"``, ``                      ``}; `` ` `    ``if` `(m == 0) ``        ``printf``(``"%s o' clock\n"``, nums[h]); `` ` `    ``else` `if` `(m == 1) ``        ``printf``(``"one minute past %s\n"``, nums[h]); `` ` `    ``else` `if` `(m == 59) ``        ``printf``(``"one minute to %s\n"``, nums[(h % 12) + 1]); `` ` `    ``else` `if` `(m == 15) ``        ``printf``(``"quarter past %s\n"``, nums[h]); `` ` `    ``else` `if` `(m == 30) ``        ``printf``(``"half past %s\n"``, nums[h]); `` ` `    ``else` `if` `(m == 45) ``        ``printf``(``"quarter to %s\n"``, nums[(h % 12) + 1]); `` ` `    ``else` `if` `(m <= 30) ``        ``printf``(``"%s minutes past %s\n"``, nums[m], nums[h]); `` ` `    ``else` `if` `(m > 30) ``        ``printf``(``"%s minutes to %s\n"``, nums[60 - m], ``                                     ``nums[(h % 12) + 1]); ``} `` ` `// Driven Program ``int` `main() ``{ ``    ``int` `h = 6; ``    ``int` `m = 24; `` ` `    ``printWords(h, m); ``    ``return` `0; ``} `

## Java

 `// Java program to convert time into words ``public` `class` `GFG ``{ ``     ` `    ``// Print Time in words. ``    ``static` `void` `printWords(``int` `h, ``int` `m) ``    ``{ ``        ``String nums[] = { ``"zero"``, ``"one"``, ``"two"``, ``"three"``, ``"four"``, ``                            ``"five"``, ``"six"``, ``"seven"``, ``"eight"``, ``"nine"``, ``                            ``"ten"``, ``"eleven"``, ``"twelve"``, ``"thirteen"``, ``                            ``"fourteen"``, ``"fifteen"``, ``"sixteen"``, ``"seventeen"``, ``                            ``"eighteen"``, ``"nineteen"``, ``"twenty"``, ``"twenty one"``, ``                            ``"twenty two"``, ``"twenty three"``, ``"twenty four"``, ``                            ``"twenty five"``, ``"twenty six"``, ``"twenty seven"``, ``                            ``"twenty eight"``, ``"twenty nine"``, ``                        ``}; ``     ` `        ``if` `(m == ``0``) ``            ``System.out.println(nums[h] + ``" o' clock "``); ``     ` `        ``else` `if` `(m == ``1``) ``            ``System.out.println(``"one minute past "` `+  ``                                            ``nums[h]); ``     ` `        ``else` `if` `(m == ``59``) ``            ``System.out.println(``"one minute to "` `+  ``                            ``nums[(h % ``12``) + ``1``]); ``     ` `        ``else` `if` `(m == ``15``) ``            ``System.out.println(``"quarter past "` `+ nums[h]); ``     ` `        ``else` `if` `(m == ``30``) ``            ``System.out.println(``"half past "` `+ nums[h]); ``     ` `        ``else` `if` `(m == ``45``) ``            ``System.out.println(``"quarter to "` `+  ``                                ``nums[(h % ``12``) + ``1``]); ``     ` `        ``else` `if` `(m <= ``30``) ``            ``System.out.println( nums[m] + ``" minutes past "` `+ ``                                                    ``nums[h]); ``     ` `        ``else` `if` `(m > ``30``) ``            ``System.out.println( nums[``60` `- m] + ``" minutes to "` `+      ``                                                ``nums[(h % ``12``) + ``1``]); ``    ``} ``     ` `    ``// Driven code ``    ``public` `static` `void` `main(String []args) ``    ``{ ``        ``int` `h = ``6``; ``        ``int` `m = ``24``; ``        ``printWords(h, m); ``    ``} ``} `` ` `// This code is contributed by ihritik `

## Python3

 `# Python3 program to convert  ``# time into words `` ` `# Print Time in words. ``def` `printWords(h, m): ``    ``nums ``=` `[``"zero"``, ``"one"``, ``"two"``, ``"three"``, ``"four"``, ``            ``"five"``, ``"six"``, ``"seven"``, ``"eight"``, ``"nine"``, ``            ``"ten"``, ``"eleven"``, ``"twelve"``, ``"thirteen"``, ``            ``"fourteen"``, ``"fifteen"``, ``"sixteen"``,  ``            ``"seventeen"``, ``"eighteen"``, ``"nineteen"``,  ``            ``"twenty"``, ``"twenty one"``, ``"twenty two"``,  ``            ``"twenty three"``, ``"twenty four"``,  ``            ``"twenty five"``, ``"twenty six"``, ``"twenty seven"``, ``            ``"twenty eight"``, ``"twenty nine"``]; `` ` `    ``if` `(m ``=``=` `0``): ``        ``print``(nums[h], ``"o' clock"``); `` ` `    ``elif` `(m ``=``=` `1``): ``        ``print``(``"one minute past"``, nums[h]); `` ` `    ``elif` `(m ``=``=` `59``): ``        ``print``(``"one minute to"``, nums[(h ``%` `12``) ``+` `1``]); `` ` `    ``elif` `(m ``=``=` `15``): ``        ``print``(``"quarter past"``, nums[h]); `` ` `    ``elif` `(m ``=``=` `30``): ``        ``print``(``"half past"``, nums[h]); `` ` `    ``elif` `(m ``=``=` `45``): ``        ``print``(``"quarter to"``, (nums[(h ``%` `12``) ``+` `1``])); `` ` `    ``elif` `(m <``=` `30``): ``        ``print``(nums[m],``"minutes past"``, nums[h]); `` ` `    ``elif` `(m > ``30``): ``        ``print``(nums[``60` `-` `m], ``"minutes to"``,  ``              ``nums[(h ``%` `12``) ``+` `1``]); `` ` `# Driver Code ``h ``=` `6``; ``m ``=` `24``; `` ` `printWords(h, m); `` ` `# This code is contributed  ``# by Princi Singh `

## C#

 `// C# program to convert time into words ``using` `System; `` ` `class` `GFG ``{ ``     ` `    ``// Print Time in words. ``    ``static` `void` `printWords(``int` `h, ``int` `m) ``    ``{ ``        ``string` `[] nums = { ``"zero"``, ``"one"``, ``"two"``, ``"three"``, ``"four"``, ``                            ``"five"``, ``"six"``, ``"seven"``, ``"eight"``, ``"nine"``, ``                            ``"ten"``, ``"eleven"``, ``"twelve"``, ``"thirteen"``, ``                            ``"fourteen"``, ``"fifteen"``, ``"sixteen"``, ``"seventeen"``, ``                            ``"eighteen"``, ``"nineteen"``, ``"twenty"``, ``"twenty one"``, ``                            ``"twenty two"``, ``"twenty three"``, ``"twenty four"``, ``                            ``"twenty five"``, ``"twenty six"``, ``"twenty seven"``, ``                            ``"twenty eight"``, ``"twenty nine"``, ``                        ``}; ``     ` `        ``if` `(m == 0) ``            ``Console.WriteLine(nums[h] + ``" o' clock "``); ``     ` `        ``else` `if` `(m == 1) ``            ``Console.WriteLine(``"one minute past "` `+ nums[h]); ``     ` `        ``else` `if` `(m == 59) ``            ``Console.WriteLine(``"one minute to "` `+ ``                                ``nums[(h % 12) + 1]); ``     ` `        ``else` `if` `(m == 15) ``            ``Console.WriteLine(``"quarter past "` `+ nums[h]); ``     ` `        ``else` `if` `(m == 30) ``            ``Console.WriteLine(``"half past "` `+ nums[h]); ``     ` `        ``else` `if` `(m == 45) ``            ``Console.WriteLine(``"quarter to "` `+  ``                                ``nums[(h % 12) + 1]); ``     ` `        ``else` `if` `(m <= 30) ``            ``Console.WriteLine( nums[m] + ``" minutes past "` `+ ``                                                    ``nums[h]); ``     ` `        ``else` `if` `(m > 30) ``            ``Console.WriteLine( nums[60 - m] + ``" minutes to "` `+  ``                                            ``nums[(h % 12) + 1]); ``    ``} ``     ` `    ``// Driven code ``    ``public` `static` `void` `Main() ``    ``{ ``        ``int` `h = 6; ``        ``int` `m = 24; ``        ``printWords(h, m); ``    ``} ``} `` ` `// This code is contributed by ihritik `

## PHP

 ` 30) ``        ``echo` `\$nums``[60 - ``\$m``], ``             ``" minutes to "``,  ``             ``\$nums``[(``\$h` `% 12) + 1], ``"\n"``; ``} `` ` `// Driver Code ``\$h` `= 6; ``\$m` `= 24; `` ` `printWords(``\$h``, ``\$m``); `` ` `// This code is contributed by aj_36 ``?> `

## Javascript

 ``

Output
```twenty four minutes past six
```

Time Complexity: O(1)

Auxiliary Space: O(1) as constant space has been used

Previous
Next