The Time in Words

Given the time in numerals we may convert it into words, as shown below:
At , use o' clock. For , use past, and for  use to. Note the space between the apostrophe and clock in o' clock. Write a program which prints the time in words for the input given in the format described.
Function Description
Complete the timeInWords function in the editor below. It should return a time string as described.
timeInWords has the following parameter(s):
  • h: an integer representing hour of the day
  • m: an integer representing minutes after the hour
Input Format
The first line contains , the hours portion The second line contains , the minutes portion
Constraints
Output Format
Print the time in words as described.
Sample Input 0
5
47
Sample Output 0
thirteen minutes to six
Sample Input 1
3
00
Sample Output 1
three o' clock
Sample Input 2
7
15
Sample Output 2
quarter past seven
php

<?php

// Complete the timeInWords function below.
function convertNumToWord($n) {
$arr = array(
0 => 'twelve',
1 => 'one',
2 => 'two',
3 => 'three',
4 => 'four',
5 => 'five',
6 => 'six',
7 => 'seven',
8 => 'eight',
9 => 'nine',
10 => 'ten',
11 => 'eleven',
12 => 'twelve',
13 => 'thirteen',
14 => 'fourteen',
15 => 'fifteen',
16 => 'sixteen',
17 => 'seventeen',
18 => 'eighteen',
19 => 'nineteen',
20 => 'twenty',
21 => 'twenty one',
22 => 'twenty two',
23 => 'twenty three',
24 => 'twenty four',
25 => 'twenty five',
26 => 'twenty six',
27 => 'twenty seven',
28 => 'twenty eight',
29 => 'twenty nine',
30 => 'thirty'
);
return $arr[$n];
};
function timeInWords($h, $m) {
if($m == 0) {
return convertNumToWord($h)." o' clock";
}
else if($m == 1) {
return convertNumToWord($m)." minute past ".
convertNumToWord($h);
}
else if($m == 15) {
return "quarter past ".convertNumToWord($h);
}
else if($m == 30) {
return "half past ".convertNumToWord($h);
}
else if($m == 45) {
return "quarter to ".
convertNumToWord($h == 11 ? 0 : $h+1);
}

else if($m < 30) {
return convertNumToWord($m)." minutes past ".
convertNumToWord($h);
}
else if($m > 30) {
return convertNumToWord(60 - $m)." minutes to ".
convertNumToWord($h == 11 ? 0 : $h+1);
}
}


$fptr = fopen(getenv("OUTPUT_PATH"), "w");

$stdin = fopen("php://stdin", "r");

fscanf($stdin, "%d\n", $h);

fscanf($stdin, "%d\n", $m);

$result = timeInWords($h, $m);

fwrite($fptr, $result . "\n");

fclose($stdin);
fclose($fptr);


Comments

Popular posts from this blog

Intro to Tutorial Challenges

Strong Password