Albert was sure Bernard didn't know the birthday, which is only possible if the month didn't have any unique dates as then there would have been a possibility of the date being unique (if it was 18 the month would obviously be June, and May for 19) Both June and May have unique dates (18 & 19 respectively).
Options left : July 14, 16; August 14, 15, 17
Bernard found the answer when he came to this conclusion (of possibilities July 14, 16; August 14, 15, 17) after hearing Albert speak. Therefore, the date was not 14, because if it had been 14 the month could have been any of the bone.
Options left : July 16, August 15, 17.
Albert got to know the answer after Bernard, so even he reached the same conclusion. He knew the month. If the month had been August, the date could either have been either 15 or 17. However the month must have been July, only the a definite date would have been obtained, i.e. 16 July.
The key is to solve the problem yourself than to see it as a story.