When is Cheryl's birthday? Singapore math question for kids stumps internet

A math question to test the logic skills of students participating in the Singapore and Asian Schools Math Olympiad has stumped people around the world who just want to know when Cheryl's birthday is.
TV host Kenneth Kong posted a photo of the puzzle to his Facebook page a few days ago.
In the question, Cheryl gives her friends Albert and Bernard 10 possible dates for when she was born. She tells Albert only the month of her birth and Bernard the date. Without divulging what information they each have, the boys determine when Cheryl was born.
The trick question caused a lot of debate with his wife, Kong wrote.
More than 5,000 people shared Kong's picture, and people started tweeting with #CherylsBirthday to express their frustration with solving the riddle.
Took a lucky guess & got Cheryl's birthday right. Totally smart. <a href="https://twitter.com/hashtag/cherylsbirthday?src=hash">#cherylsbirthday</a>
—@aims90
Hmmm...not as easy as he thought! <a href="https://twitter.com/hashtag/cherylsbirthday?src=hash">#cherylsbirthday</a> <a href="https://twitter.com/hashtag/ccnb?src=hash">#ccnb</a> <a href="https://twitter.com/hashtag/nopresentsforcheryl?src=hash">#nopresentsforcheryl</a> <a href="http://t.co/thasCSdp2n">pic.twitter.com/thasCSdp2n</a>
—@Raycub22
My 12 yo solved answer in under 30 seconds. She picked up her iPhone looked at twitter for the answer. <a href="https://twitter.com/hashtag/cherylsbirthday?src=hash">#cherylsbirthday</a> <a href="https://twitter.com/hashtag/socialmedia?src=hash">#socialmedia</a>
—@mikefromoak
<a href="https://twitter.com/hashtag/cherylsbirthday?src=hash">#cherylsbirthday</a> after some time out my day I've finally found out the answer! I'm doing a masters in maths and that was for 11 year olds ��
—@DSanaghan
Others were simply annoyed that Cheryl would make figuring out her birthday so complicated. After all, how can one expect any gifts if the majority of people can't solve her complicated riddle?
She doesn't seem like a very good friend... <a href="https://twitter.com/hashtag/cherylsbirthday?src=hash">#cherylsbirthday</a>
—@atkirsty92
Cheryl sounds like she makes her life more difficult than it ought to be <a href="https://twitter.com/hashtag/cherylsbirthday?src=hash">#cherylsbirthday</a>
—@timpy
cheryl on july 16: "you didn't know its my birthday? told you plain & clear! in writing! why don't you ❤️ me?" <a href="https://twitter.com/hashtag/guyproblems?src=hash">#guyproblems</a> <a href="https://twitter.com/hashtag/cherylsbirthday?src=hash">#cherylsbirthday</a>
—@brooklynburning
So, when was Cheryl born? Let's work it out.
Step 1:
First, you have to figure out what Albert knows that Bernard doesn't.
Cheryl gave the pair 10 possible dates. The combinations are made up of four possible months and dates falling between 14 and 19. Only 18 and 19 appear once across the 10 combinations.
If Bernard was told either 18 or 19, he would know Cheryl's birthday — either May 19 or June 18.
Albert says he doesn't know when Cheryl's birthday is, but neither does Bernard.
If Cheryl had told Albert she was born in either May or June, it would be possible for Bernard to know when her birthday is (assuming she told him either 19 or 18).
If Bernard can't know Cheryl's birthday with his information alone, we know Cheryl told Albert she was born in either July or August.

Step 2:
After Albert says his piece, Bernard announces he now knows when Cheryl's birthday is.
At this point, he has also been able to deduce the months down to July or August. From the potential dates in those two months, only 14 appears twice.
To know Cheryl's birthday, Bernard must have been told a number other than 14.

Step 3:
Albert then announces he also knows Cheryl's birthday, having eliminated two months and the number 14. This leaves him with three potential dates: July 16, August 15 and August 17.
If Cheryl had told Albert August, he would not know because he would still be missing the date — either 15 or 17.
Cheryl must have told Albert July, leaving him with only one possible date to celebrate his new friend's birthday: July 16.

Kong posted the full solution to his Facebook page a few days after sharing the original problem.

But, just because we know when Cheryl's birthday is doesn't mean we have answers to all the questions...
I have a pissing dissertation to write. Why am I trying to work out when <a href="https://twitter.com/hashtag/CherylsBirthday?src=hash">#CherylsBirthday</a> is?
—@acidskiffle