Why do we say "last night" and not "yesterday night"?

As from object, is there a rational reason for saying "last night" rather than "yesterday night", though you would say "yesterday morning" and "yesterday afternoon"?


Solution 1:

[Edited:] You couldn't say last morning in most cases, because you might be referring to this morning if the hour of speaking is late (today's morning is the "last" morning then): it would be confusing if last morning could be either today or yesterday. The same applies to the afternoon. But you can't go later than "night": the last night that has passed (you would not use "last" for a period that is not over yet) is necessarily that of the day before today. This could be the reason why we use "last" only with "night". But there might be some entirely different historical reason instead; it is impossible to say without textual research.

We could theoretically use yesterday night as an alternative to last night; but it would be longer, which might be why it is never used. Or it could be some other reason.

Solution 2:

Night is the time that spans over the change of days. I can refer to events that happened after midnight - indeed last night, but not yesterday. Thus, "yesterday night" would lead to ambiguity.

Solution 3:

Here's one possible explanation.

Many years ago (before Shakespeare), people didn't either say yesterday night or last night because they said yesternight instead. Shakespeare uses both last night and yesternight. When yesternight was still in use, yesterday night would have sounded strange, even though last night wouldn't. And when yesternight went out of use completely, last night was already too firmly established for yesterday night to be used.