Source code
string timeInWords(int h, int m)
{
map<int,string>sen;
string ans;
sen[1] = "one";
sen[2] = "two";
sen[3] = "three";
sen[4] = "four";
sen[5] = "five";
sen[6] = "six";
sen[7] = "seven";
sen[8] = "eight";
sen[9] = "nine";
sen[10] = "ten";
sen[11] = "eleven";
sen[12] = "twelve";
sen[13] = "thirteen";
sen[14] = "fourteen";
sen[15] = "quarter";
sen[16] = "sixteen";
sen[17] = "seventeen";
sen[18] = "eighteen";
sen[19] = "nineteen";
sen[20] = "twenty";
sen[21] = sen[20] + " "+ sen[1];
sen[22] = sen[20] + " "+ sen[2];
sen[23] = sen[20] + " "+ sen[3];
sen[24] = sen[20] + " "+ sen[4];
sen[25] = sen[20] + " "+ sen[5];
sen[26] = sen[20] + " "+ sen[6];
sen[27] = sen[20] + " "+ sen[7];
sen[28] = sen[20] + " "+ sen[8];
sen[29] = sen[20] + " "+ sen[9];
sen[30] = "half";
if (m == 0)
{
ans = sen[h] + " o' clock";
}
else if (m <= 30)
{
string tmp1 = ((m) == 1 ? "" : "s");
string tmp2 = (m != 30 && m != 15 ? " minute"+ tmp1 : "");
ans = sen[m] + tmp2 + " past "+ sen[h];
}
else if (m > 30)
{
string tmp1 = ((m) == 1 ? "" : "s");
ans = sen[60 - m]+ (m != 45 ? " minute" + tmp1 : "")+ " to " + sen[h + 1];
}
return ans;
}
Add your comment