This question was posed to the mathematics Olympiad contestants on 8th April, as 24th out of 25 questions, in other words a difficult question meant to sift out the better students.
First we need to figure out if Albert knows the month or the day. If he knows the day, then there is no chance that Bernard knows the birthday, so it must be that Albert knows the month.
From the first statement, we know that Albert is sure that Bernard doesn’t know the birthday, so May and June should be ruled out (the day 19 only appears in May and the day 18 only appears in June). In other words, if Albert had May or June, then he cannot be sure that Bernard doesn’t know, since Bernard could have had 18 or 19.
Following that statement, Bernard knows that May and June are ruled out.
Then, Bernard is able to know which month it is. So it must be either July 16, August 15 and August 17 (not 14th as then he can’t know).
Since Albert subsequently can also be sure of the date, he must know it’s July. If it’s August, he can’t be sure as there is August 15 and 17.
So the answer is July 16.