“Have you seen...” or “Did you see...?”

In the US, when people work together, they may look for a colleague or any person to say something or for any other reason, asking colleagues or other people this type of question:

  1. Have you seen Michael?
    (OR)
  2. Did you see Michael?

Which is considered right if the question refers to an activity (in our case "see") during the day and not in the past in general?


Have you seen Michael today?

Have you seen Michael in the last 3 days / 3 years / 30 years?

These phrases are all correct. "Did" cannot apply: it is used for a "remote" past: one that is "detached" from this time, day, week, etc.

Did you see Michael this morning? (now it is the afternoon)

Did you see Michael yesterday / last week / last year / 20 years ago?

These phrases are all correct. "Have" cannot apply: it is used when the past is "attached" to this time.

In other words, it is not a question of how far back something happened. It is just a question of how you describe it; meaning up to this moment or with a period in between, which detaches that past from this time.

Therefore:

  1. In the last 10 years I have been abroad 20 times (it's a long time, but it is "up to now")
    BUT...
  2. Yesterday I went to London (yesterday does not "touch" this moment: it ended some hours ago).
  3. In the last few days (they do "touch" this time) I saw John
    BUT...
  4. In the last 20 years (the period is very long, but it is "up to now") I have seen John very many times.

This is how it should be. What is actually used is a different story, of course.