Why can I say “I’m having my lunch” but not “I’m having a headache”? Some explanations I’ve read indicate it’s all to do with possession. But every time I think I have it figured, I have to wonder why I must say “I have a cold” when I can’t say “I have a.” I’m sure you’ll be having a good explanation for me:-)
Here’s the usual rule given to ESL students concerning the use of “have” to show possession or to describe medical conditions:
Have should always be in the simple present tense for the meaning “to own,” or to describe medical problems. For example: They have a new car. I have a bad cold. It is incorrect to say “I am having a cold” or “I am having a new car.”
“I’m having a heart attack” does seem to contradict this rule.
I think that the difference between “I have a headache” and “I’m having a heart attack” may have more to do with duration than with either a medical condition or possession.
One can “have a,” but a heart attack is a singular event, usually over in a few seconds or minutes. One may say “I hope I won’t have a heart attack,” but in the event that one has one–and is capable of telling someone–”am having” is the only possibility.
A headache is generally of longer duration than a heart attack. It may last an hour, several hours, or days. The same applies to a cold. Both are events of indeterminate duration. You have them for a while.
If you’re seated at a table having your lunch, you’re engaged in an activity with a predictable end. You’ll stop “having lunch” when you’ve finished eating.
That’s my theory, anyway.