I know that when I use such words like
in 1984, I have to use Simple Past but not Present Perfect.
I visited my mother yesterday.
I have visited my mother.
But what if I want to use Present Perfect to say about some previous action that has effect now and I want to add extra information about the time when it happened? Can I say:
I have broken my leg yesterday. (is it correct?)
No, that is not correct.
I have broken my leg (without the yesterday) can be used in two situations that I can think of:
1) “I have broken my leg four times in the last year!”
In this case it means that your leg was broken at four different times in the past year, but it doesn’t necessarily say your leg is broken now. I might be broken now or it might not; it doesn’t imply anything either way.
2) “I’ve broken my leg!”
I can see this being said as a surprised exclamation at the moment your leg is broken. As in, “Oh my god, my leg just broke!” This means that, at this moment, you have just broken your leg. Now whether or not anyone is coherent enough to actually say this when they break their leg is another matter, but it would be valid at the time if they did say it.
Now, if you broke your leg yesterday, you cannot accurately say “I have broken my leg.” Your leg is currently broken, yes, but we say:
I broke my leg yesterday.
The action of breaking occurred yesterday, so you use the past when talking about it. If you want a sentence in the present, you can say something like this:
My leg is broken; I had an accident yesterday.
Source : Link , Question Author : Graduate , Answer Author : WendiKidd