@KoleraHeliko @lillycoyote An example of an idiom would be “in the doghouse”. When one is “in the doghouse”, others are annoyed with you because of something that you did. That person is not inside of anything and there is absolutely no “doghouse” anywhere. In short, the definition has no obvious connection with the phrase, and if you have never heard it before, you would have no clue what it means.
The happy birthday does have to do with being happy, and it does have to with a birthday. Even if someone has never heard the words “happy birthday” before, by knowing what the words “happy” and “birthday” mean, one could easily deduce what the whole phrase meant.
The fact that one cannot “have” a day is the same as the way that one cannot “be” tall. Despite this, English, along with many other languages such a French, use their word for “be” to describe someone who is tall. Those who don’t use their word for “have” to descibe someone as having tallness, but one cannot own tallness either. In my opinion, “having” a good day is a standard convention of English.
I think that I have spent too much time on this point, so I am going to drop this point after now.