Indication to the point of time in the past
We don’t use Present Perfect when there is indication to the point of time or a period of time that has already finished. It might be expressed explicitly or implicitly.
last + period of time: last year, last time, last month, last night, last week, yesterday
this morning (if speaking in the afternoon and on)
a number + period of time + ago: 1 day ago, 2 months ago, 10 years ago, a year ago (a=1)
during + past event: During World War 2, during his visit
Any other indications to the past events or actions:
When he visited us, ….(not Present Perfect here)
Any other synonyms of when:
At the time, they saw…, (not Present Perfect here)
in + year
In 1999 he graduated from University
on + day
On Monday they went to the movies
On the twentieth of May they went to the movies
Another way to think about it
at a definite point in time in the past:
I had my breakfast at 10 am (exact time expressed by time itself)
They left the room when I came (exact time expressed by another verb!)
She brought a dog home 2 minutes ago
at an indefinite point in time in the past:
I planned to retire ages ago
We forecasted this years ago
approximate time in the past:
Last week (a week ago, a year ago, last year etc) he dreamed of becoming an astronaut, and today he wants to be a doctor
She studied so hard last year
When there is a context that lets us know that the period of time when an action happened is over, we don’t use “Present” Perfect:
Steven Paul Jobs was an American business magnate and investor. He was the chairman, chief executive officer, and co-founder of Apple Inc.
(This was an example from a Wikipedia article) From the general knowledge about this legendary man, we can definitely and unfortunately say that we are talking about the period of time that has already finished. There may be different situations where you can figure out if the time period when an action happened is over.
When an action took place somewhere and we can replace the place with the when construction, we use Past Simple and other tenses, but we don’t use Present Perfect:
I bought it in Moscow
I bought it when I was in Moscow
This is because there is an indication to time period that has already finished.
There may be many indications that the period of time when an action took place was over, I just gave you the most common ones, and for some students it’s difficult to distinguish if the time period referred to is over or not. So here is the bullet proof, 100 % working tip:
100% working tip
1 Remove the Participle 2 (the third form of the verb, the past participle) and the rest of the sentence, but don’t remove the time period / point:
I have done my lessons yesterday –> I have yesterday
2 Replace the removed portion with a noun:
I have a car yesterday
3 Translate that sentence into your native language. Does it sound good in your language. Of course not. So don’t use Present Perfect in the case.
Actually we’ve come up to the point why Present Perfect expresses (first use of Present Perfect) a completed action in the past but is still called present. That is because of the verb have that expresses possession in the present (have / has) of a completed action (Participle 2) in the past (that is why it’s called Past Participle, you can call it Participle 2). As you can notice, although the verb have is not the main verb, it might have a meaning of it’s own. Which is a nice observation by the way. Let me repeat it without fancy words:
I have done my lessons
The verb have expresses possession in the present (have), of a completed in the past action (done)
That’s why it’s Present Completed, well, Present Perfect I meant to say
And we are done!