9

When to use have you had and did you have in sentence?

e.g.

1) To ask some if he had his lunch or not?

Have you had your lunch?

Or

Did you have your lunch?

2) To ask some if he faced this situation in past or not?

Have you had this situation when you were doing this?

Or

Did you have this situation when you were doing this?

5

1) "Have you had lunch?" is preferred. The phrasing suggests that you're asking something about how the person currently is, specifically whether he is hungry. If you were asking about events from a week ago, then "did you have your lunch?" would be equally as good as "had you eaten/had your lunch?"

2) In a similar manner, I suggest that "Did you have this problem when you were doing this?" is preferred, as it is asking about a past timeframe. If they were both still working on the project, one could ask "Have you had this problem?"

2

I'll add another answer because your second set of phrases is slightly different when I read them:

For the first set:

Have you had your lunch?

My mind reads it as:

Have you already eaten/consumed your lunch?

While the second sentence

Did you have your lunch?

Means the same thing, but the tense is slightly different. I read it as:

Did you already eat your lunch?

For your second set of questions, neither feel very good:

Have you had this situation when you were doing this?

Here, had isn't a good word as it is not exact enough and when you were doing this is assumed from context. My mind reads it as:

Have you ever encountered this situation? where in your past experiences is implied.

The second one,

Did you have this situation when you were doing this?

is closer, but still sounds a little strange, mostly because you use this twice in the same sentence, but with slightly different meanings on both. I understand it, but would avoid using this structure.

1

In most contexts, both are usable.

I would say the key difference between "Have you (done X)" and "Did you (do X)" is the timeframe. I believe have refers to a continuous past and asks if something has happened since a particular time. While did specifies a particular time and asks if it happened then.

When you don't specify the time, have defaults to either ever or recently. Since almost everyone has had lunch at least once in their life, we assume the more useful question of whether they've had it today. Did requires an expected time. In the lunch context, most would assume "at any time today".

This makes the second example interesting to me; I interpret the when statement as specifying the time for the did, but as clarifying the hypothetical event for the had.

Have you (had this happen when you did this)?

vs.

When you did this, did you (have this happen)?

Not the answer you're looking for? Browse other questions tagged or ask your own question.