现在完成时既可表示过去发生的动作对现在所造成的结果或影响(此时通常连用的时间状语有already, yet, just, ever, before),也可表示动作从过去某时间开始,一直持续到现在,并且还有可能持续下去(此时通常连用的时间状语有this month / week / year, these days, recently / lately, in the past few + 时间段, since +时间点, for + 时间段)。如:
I have just finished my work. 我把工作做完。
Have you ever been to Beijing? 你曾经去过北京吗?
I have lived for ten years. 我在这儿住了十年了。
We have studied here since 2003. 我们自2003年来就在这儿读书了。
现在完成时由"have / has + 过去分词"构成。
(1) 非持续性动词go, come, leave, borrow, buy, die, join的完成时的肯定式不能与时间段连用,若要接用时间段状语,则应换成相应的持续动词或状态动词。如:
He has been away for an hour. 他走了一个小时了。
Can I borrow that book? 我可以借那本书吗?
How long can I keep the book? 这本书我可借多久?
注意:非持续性动词的否定完成时可与时间段状语连用。如:
He has not borrowed the book since then. 从此以后,他再也没有借这本书了。
(2) have / has been to 表示曾经去过某地,但现在不在那儿;have / has gone to表示现在已去某地,现在不在这儿。如:
He has been to Canada, but now he is working in our company. 他去过加拿大,现在在我们公司工作。
Mr. Li is not at home. He has gone to Shanghai. 李先生不在家,他去上海了。
(3) 完成时的肯定式常用already,而否定式和疑问句常用yet,但若already用于疑问句时,表示一种出乎意外的惊讶。如:
Have you read it already? 你就看完了?
(1) 现在完成时与一般过去时的区别:现在完成时强调动作的结果或对现在的影响,属于现在时的范畴;一般过去时强调动作所发生的时间,属于过去时的范畴。因此,过去时需跟过去时间连用或有表过去时间的上下文连用,而现在完成时不能与过去时间连用。如:
I read the book two weeks ago. 我两周前读了这本书。
I have read the book for two weeks. 这本书我读过两周了。
(2) 现在完成时与现在进行时:现在完成时强调动作持续到现在或刚结束;而现在进行时只强调目前的状态。如:
They have talked for about two hours. 他们谈了大约两个小时。(强调动作的持续)
They are talking. 他们在谈话。 (强调目前的状态)