"Did you do it?" vs "Have you done it?"?
If someone did something that made me mad, which is correct to say:
- Did you do it?
- have you done it?
If not, what is the proper situation for saying Did you do it?
“Have you done it?” is the question to ask if you want to know:
- whether a task is finished, or
- whether they have experience with some task.
For example, if you want to know whether a report is done, or whether somebody has gone sky diving before, you can ask, “Have you done it?” In the first case, you could also ask, “Have you done it yet?” In the latter, “Have you done it before?”
“Did you do it?” is the question you want to ask to find out who did something. You can also use it to ask whether a task is finished, although the emphasis is different:
Did you do it?
Did you do it?
If you already know someone did something to make you mad, you wouldn't ask if they had done it. You might question WHY they did it though:
"Why'd you do it?"
However, if you are uncertain, then:
"Did you do it?"
would be correct.