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:
- In the last 10 years I have been abroad 20 times (it's a long time, but it is "up to now")
BUT...
- Yesterday I went to London (yesterday does not "touch" this moment: it ended some hours ago).
- In the last few days (they do "touch" this time) I saw John
BUT...
- 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.