现在完成时用法详说

时间:2010-01-12 22:33:05 来源:英语学习网站

一、现在完成时的两种基本用法

(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. 他去巴黎了。(即现在不在这儿)

>>点击查看更多关于英语语法知识的文章

英语学习方法

栏目推荐