In reply to Simon4:
> I suppose what I mean is how can Bernard, using the knowledge that Albert does not know the date but DOES know that he also does not know it, can conclude that it is NOT May 16th.
The same way we know.
Albert knows that Bernard knows the number. There is only one 18 and only one 19, so for Albert to be sure that Bernard doesn't know the date he must know that it isn't May 19 or June 18.
Albert doesn't know the number, but he does know the month. So the only way he can be sure that it isn't May 19 or June 18 is if he knows that it isn't May or June.
So as soon as he says he knows that Bernard doesn't know, we (and Bernard) can work out that it isn't May or June.
Bernard already knows the number. So as soon as he finds out that it's either July or August, he knows the whole date. (Albert still knows only which month.)
When Bernard says that he knows the whole date, Albert knows that it can't be the 14th - because then Bernard would still not have known whether it was July 14th or August 14th.
Albert already knows the month so knowing it can't be the 14th, he knows the whole date too.
When Albert says that he knows the whole date, that tells us that it has to be in July. Because if it were August, Albert still wouldn't know whether it was August 15 or August 16.
So now we know it's July, and we found out earlier that it couldn't be the 14th so it has to be July 16th.
I think it's slightly less confusing if you think of it as a problem with three people in it. Albert, Bernard and Charlie. (Charlie is us.)
When Albert says he knows Bernard doesn't know, Bernard can work out the date.
When Bernard says he's worked it out, Albert can work it out too.
When Albert says he's worked it out, Charlie can finally work it out as well.