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++ program to convert time into words #include <bits/stdc++.h> 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 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 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# 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 // PHP program to convert // time into words // Print Time in words. function printWords( $h , $m )
{ $nums = array ( "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)
echo $nums [ $h ],
"o' clock\n" ;
else if ( $m == 1)
echo "one minute past " ,
$nums [ $h ], "\n" ;
else if ( $m == 59)
echo "one minute to " ,
$nums [( $h % 12) + 1], "\n" ;
else if ( $m == 15)
echo "quarter past " ,
$nums [ $h ], "\n" ;
else if ( $m == 30)
echo "half past " ,
$nums [ $h ], "\n" ;
else if ( $m == 45)
echo "quarter to " ,
( $nums [( $h % 12) + 1]), "\n" ;
else if ( $m <= 30)
echo $nums [ $m ],
" minutes past " ,
$nums [ $h ], "\n" ;
else if ( $m > 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 ?> |
<script> // Javascript program to convert time into words
// Print Time in words.
function printWords(h, m)
{
let 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)
document.write(nums[h] + " o' clock " + "</br>" );
else if (m == 1)
document.write( "one minute past " + nums[h] + "</br>" );
else if (m == 59)
document.write( "one minute to " +
nums[(h % 12) + 1] + "</br>" );
else if (m == 15)
document.write( "quarter past " + nums[h] + "</br>" );
else if (m == 30)
document.write( "half past " + nums[h] + "</br>" );
else if (m == 45)
document.write( "quarter to " + nums[(h % 12) + 1] + "</br>" );
else if (m <= 30)
document.write( nums[m] + " minutes past " + nums[h] + "</br>" );
else if (m > 30)
document.write( nums[60 - m] + " minutes to " + nums[(h % 12) + 1] + "</br>" );
}
let h = 6;
let m = 24;
printWords(h, m);
</script> |
twenty four minutes past six
Time Complexity: O(1)
Auxiliary Space: O(1) as constant space has been used