ANSWER:
Let’s examine what Albert and Bernard say. Albert goes first:
I don’t know when your birthday is, but I know Bernard doesn’t know, either.
The first half of the sentence is obvious — Albert only knows the month, but not the day — but the second half is the first critical clue.
The initial reaction is, how could Bernard know? Cheryl only whispered the day, so how could he have more information than Albert? But if Cheryl had whispered “19,” then Bernard would indeed know the exact date — May 19 — because there is only one date with 19 in it. Similarly, if Cheryl had told Bernard, “18,” then Bernard would know Cheryl’s birthday was June 18.
Thus, for this statement by Albert to be true means that Cheryl did not say to Albert, “May” or “June.” (Again, for logic puzzles, the possibility that Albert is lying or confused is off the table.) Then Bernard replies:
I didn’t know originally, but now I do.
So from Albert’s statement, Bernard now also knows that Cheryl’s birthday is not in May or June, eliminating half of the possibilities, leaving July 14, July 16, Aug. 14, Aug. 15 and Aug. 17. But Bernard now knows. If Cheryl had told him “14,” he would not know, because there would still be two possibilities: July 14 and Aug. 14. Thus we know the day is not the 14th.
Now there are only three possibilities left: July 16, Aug. 15 and Aug. 17. Albert again:
Well, now I know too!
The same logical process again: For Albert to know, the month has to be July, because if Cheryl had told him, “August,” then he would still have two possibilities: Aug. 15 and Aug. 17.
The answer is July 16.