现在完成时用法详说
一、现在完成时的两种基本用法
(1) 已完成用法(影响性用法)。该用法的现在完成时表示一个过去发生的动作在过去已经完成,并且这个过去发生并完成的动作对现在有影响或结果,同时说话强调的或感兴趣的就是这个影响或结果:
He has left the city. 他已离开这个城市。(结果:他不在这个城市)
Someone has broken the window. 有人把窗户打破了。(结果:窗户仍破着)
Have you seen my bag? 你看到我的手提包了吗?(结果:你知道它在哪里吗?)
(2) 未完成用法(持续性用法):该用法的现在完成时表示一个过去发生的动作并未在过去完成,而是一直持续到现在,并且有可能继续下去(也可能到此结束):
Have you waited long? 你等了很久吗?
We have been busy this afternoon. 今天下午我们一直很忙。
The temperature has stayed hot this week. 这星期天气一直很热。
【注】除以上用法外,现在完成时还可表示过去的重复动作甚至将来动作:
He has always gone to work by bike. 他总是骑自行车上班。
I’ll go to bed when I’ve finished my homework. 我做完作业后就上床睡觉了。
二、与现在完成时连用的常用词语
能与现在完成时连用词语很多,如副词just, already, yet, before, ever, recently 等,但下面是一些典型而且重要的例子:
(1) since(自从):不管用作介词、连词还是副词, 句子(主句)谓语通常都用现在完成时:
I haven’t seen her since last week. 自上周以来我一直未见过她。
Where have you been since I last saw? 自我上次见到你之后你到哪里去了?
【注】有时可用其他时态的情况,但须注意:
① 对于某些表示状态的动词(如 seem 等),或因语义等方面的原因,有时可能用一般现在时比较现在完成时更合适:
It seems like years since we last met. 我们似乎几年未见面了。
Since when does the $42 plus $5 service charge come to $48? 从什么什候开始42元加5元的服务费等于48元了?
② 若不是指从过去持续到现在,而是指从较远的过去持续到在一个较近的过去,则用过去完成时:
Yesterday he told me that he hadn’t eaten anything since Tuesday. 他昨天告诉我自星期二以来他一直未吃任何东西。(指从星期二至昨天未吃东西)
③ 表示时间长度时,通常用一般现在时代替现在完成时:
It’s ten years since he left here. 他离开这儿已10年了。
(2) so far(到目前为止):(from www.yygrammar.com)
So far there has been no bad news. 到现在为止还没有什么坏消息。
We haven’t had any trouble so far. 到目前为止,我们还没有遇到任何麻烦。
(3) in [for, during] the past [last] … years(在过去…年中):
In the past two years I’ve seen him little. 过去两年我很少见到他。
I have been here (for) the last [past] month. 最近一个月里我都在这儿。
【注】在一定的上下文里,若是以过去时间为起点,也可用过去完成时。
(4) up to [until] now(到现在为止):
Up to now, the work has been easy. 到现在为止这工作还算容易。
I have heard nothing from him up to now. 到现在为止我还没有听到他一点音信。
(5) It’s [will be] the first time that…(第一次…):
It’s the first time I’ve come here. 这是我第一次来这儿。
Don’t forget, it’ll be the first time I’ve spoken in public. 别忘了,这是我第一次在公共场合发言。
三、现在完成时与一般过去的区别
现在完成时的已完成用法很容易与一般过去时相混淆,其区别是:前者强调对现在的影响和结果,后者不强调这个影响和结果,而是强调这个动作发生的时间是在过去:
I’ve lived here for ten years. 我在这里住了10年。(现在仍住这儿)
I lived here for ten years. 我在这里住过10年。(现在不住这儿了)
He has bought a house. 他买了一栋房子。(现在已拥有这房子)
He bought a house ten years ago. 他10年前买了一栋房子。(现在是否仍拥有这房子不清楚)
【注】有些副词或介词短语(如just, before, recently, in the past等)根据情况,既可与现在完成时连用也可与一般过去时连用。
四、have been to 和have gone to
两者均可后接地点,前者表示去过某地,通常可与表示次数的状语连用;后者表示到某地去了,强调说话的当时去某地的人不在场。比较:
He has been to Paris three times. 他去过巴黎三次。
He has gone to Paris. 他去巴黎了。(即现在不在这儿)
>>点击查看更多关于英语语法知识的文章