I found some **major** bugs in my code <strike> and also in [200_success's code][1]</strike>. Since bug-determining and killing also a part of *code-review* I want to post this as an answer not as a comment. I think it's OK? right?

      Input        Correct output      My output      200_success's output [No bugs found]
     
      12:01 am     11:59 pm            00:59 pm x     11:59 pm 
      11:32 am     12:28 pm            00:28 pm x     12:28 pm
      12:34 am     11:26 pm            -1:26 pm x     11:26 pm
      06:01 am     05:59 pm            06:59 pm x     05:59 pm 
      11:02 am     12:58 pm            01:58 pm x     12:58 pm
      12:59 am     11:01 pm            -1:1 pm  x     11:01 pm 

`x` is marked as wrong output.

So in my code the line 

        if(minuteAsInt < 12) {
            return (12 - hourAsInt) + "";
        }

is making all kind of troubles. When I wrote the code, I made a theoretical assumption which doesn't stand in practical usage. What I thought was that

![enter image description here][2]

If the hour hand travels 30° in 60 minutes, then it will travel 6° in 12 minutes. So after `XX:12` the hour hand will move. 

But in practical cases we assume that hour hand moves continuously after `XX:00`.

Also there are corner cases for `12:XX` and `11:XX`. As `12 - hourAsInt - 1` will give `-ve` or `00:XX` value respectively.


  [1]: http://codereview.stackexchange.com/a/38051/26200
  [2]: https://i.sstatic.net/W15M2.jpg