一般过去时是指过去发生的事情与现在无关,,其时间状语均为过去的某个时刻如last time ,yesterday, just now等.
现在完成时是过去发生的事情或状态对现在造成影响或结果,如果是状态有可能持续到现在还会继续持续下去,看到already,2 times,for a long time等
现在完成时和一般过去时的区别
现在完成时和一般过去时都表示在过去完成的动作。但现在完成时强调的是这一动作与现在的关系。如对现在产生的结果或影响等,而一般过去时只表示动作在过去某一时刻发生,不表示和现在的关系。试比较:
I have lost my new book. 我把新书丢了。(现在还未找到)
I lost my new book yesterday. 我昨天把新书丢了。(昨天丢的,现在找到与否没说明)
现在完成时是由助动词 have(has)+动词的过去分词构成。
1表示动作发生在过去某个不确定的时间,但对现在留下了某种影响和结果。常被just、already、yet 等副词修饰。如:
-Have you had lunch yet? -Yes,I have. I've just had it.
你(已经)吃午饭了吗? 我刚刚吃过。(现在我不饿了)
2表示从过去某一时刻开始一直持续到现在的动作或状态。这个动作可能刚停止,可能仍然在进行。常带有for和since等表示一段时间的状语。 如:He has taught here since 1981
他自1981年就在这儿教书。(可能还要继续教)
I have't seen her for four years.
我有四年没见到她了。
3表示说话前发生过一次或多次的动作,现在成为一种经验,一般译为汉语“过”,常带有twice,ever,never,three times等时间状语。
如: I have been to Beijing twice.我去过北京二次。
现在完成时属于现在时范围,故不能和过去的时间状语连用。但是,在强调动作产生的后果和影响时,可以和一些表示不确定的时间状语连用。
例句:
We have already finished our homework.我们已完成作业了。
They haven't finished their homework yet.他们还没有完成作业。
-Have you ever been to the Great Wall?你曾经去过长城吗?
-I have never been to the Great Wall.我从未去过长城。
I have seen her before,but I can not remember where.
我以前见过她,但记不起在哪里见过。
He has been there three times the last few days.
近几年他去过那里三次了。
-Have you met him today?-No,I haven't.
今天你见过他吗?我 没有。
How many times have you been there this year?
今年你去过那里多少次?
(2)现在完成时可以和带有since或for等表示“一段时间”的状语连用,表示动作或状态从某一时刻开始,一直持续到现在。如:I haven't seen him for two years. 但是,像come,arrive,buy等终止性动词不能与表示“一段时间”的状语连用。如:He has been a soldier for three years.他参军三年了。
His father has been dead for two years.他父亲去世二年了。
The film has been on for ten minutes.电影已开始十分钟了。
We have studied English for three years. 我们(开始)学英语已三年了。
参考资料:自己归纳,仅供参考