I have done or I did?
Present perfect or past simple
Say I did for a finished time (yesterday, last year, in 2019) or when you tell a story. Say I have done for your life up to now, or a time that goes on until now (ever, never, so far, since). In American English, I did with ever and never is also fine.
- I saw Ana yesterday.
- I've been to Rome three times.
- We've lived here since 2019.
In Spanish you say «vivo aquí desde 2015» in the present; in English something that started then and is still true takes have: I've lived here since 2015.
A finished time wins: I bought my car two years ago, even if you still drive it. Not: I have bought it two years ago.
Also on this page: since and for · ever and never · How long have you…?
Try 6
Six quick questions, easiest first. At the end you'll see which mistake you make.
- I ______ my first job when I was seventeen.have been getting · was getting · got · have got
- Hannah and I ______ each other since primary school.know · have known · knew
- We ______ our exams in June, and then we went on holiday.finished · have finished · have been finishing · finish
- Ella ______ three different careers so far, and she is still only thirty.did have · has had · was having · had
- Kate ______ her first car two years ago, and she still drives it.has bought · bought
- My best friend ______ me four times since I moved to the city.visited · has visited
- Mia ______ her essay yesterday, so she is relaxing today.has handed in · hands in · handed in
- Our teacher ______ a great idea for the project last week.has come up with · came up with · was coming up with
- My parents ______ married in 1985 in a tiny church near the sea.have got · got
- My brother ______ in Canada for five years now, and he loves it.has lived · lived · lives
- How much ______ on your phone bill last month?did you spend · have you spent
- Last year the company ______ our office to the other side of town.moved · has moved
Show the answers
- gotnot have got: have done with a finished time
- have knownnot knew: did for a time that goes on until nownot know: I live with since or for
- finishednot have finished: have done with a finished time
- has hadnot had: did for a time that goes on until nownot did have: did for a time that goes on until now
- boughtnot has bought: have done with a finished time
- has visitednot visited: did for a time that goes on until now
- handed innot has handed in: have done with a finished time
- came up withnot has come up with: have done with a finished time
- gotnot have got: have done with a finished time
- has livednot lived: did for a time that goes on until nownot lives: I live with since or for
- did you spendnot have you spent: have done with a finished time
- movednot has moved: have done with a finished time
Common mistakes on this point
Not: I have seen him yesterday.
Say: I saw him yesterday.
yesterday, last week, in 2019 and ago are finished times: they take I did.
See this mistake on its own page ›Not: She had three jobs so far.
Say: She has had three jobs so far.
so far and since mean the time goes on until now: they take I have done. for + how long takes I have done only when it is still going on (I've worked here for two years); for a finished time, use I did (I lived in Paris for two years).
See this mistake on its own page ›Not: I live here since 2015.
Say: I've lived here since 2015.
Something that started in the past and is still true takes I have done with since or for.
See this mistake on its own page ›