Don’t confuse the present perfect with the past tense. The present perfect is used with unspecified periods of time in the past or to show the passage of time. Here’s an example of a mistake:
She has cleaned her bathroom yesterday. (incorrect)
This mistake specifies when she did something which you can only do with a past tense. Here’s the correction:
She cleaned her bathroom yesterday. (correct)
Sometimes people learning English use the past tense when they should use the present perfect. Here’s an example of three common mistakes.
I lived in Minnesota for 10 years.
This is okay for past situations, but if a person still lives in that particular place, the present perfect tense should be used.
Here’s another mistake:
I am living in Minnesota 10 years. (wrong)
I live in Minnesota 10 years. (wrong)
This person wants to say that he moved to Minnesota 10 years ago and is still there. In this case the present perfect is a good choice:
I have lived in Minnesota for 10 years. (correct!)
I have lived in Minnesota since 1996.
Notice also that for and since are often used in the present perfect. For is used with numbers of days, weeks, months, years, centuries, etc., and since is used with specified days, months and years.