英语时态的用法之四
现在完成时的用法 (1)表示动作已经完成,但后果或影响仍在。常与already, just, yet等副词连用。 I have just read your letter.我刚刚读完你的信。 He has already come back.他已经回来了. (2)表示过去发生的动作一直持续到现在。常与for或since引导的一段时间状语连用。 He has lived here for three years.他在此住了两年了。 I have been here since 1976.自从1976年我就一直在这里。 ①.for后通常跟一个时间段,而since后只能跟一个具体的时间点。 如:for two weeks持续两周时间;since Monday自从周一 ②.现在完成时的肯定句,其谓语动词如果是瞬间动词,如come, go, begin, join等,则不可与表示一段时间的状语连用。 如:他到此两周了:He has arrived here for two weeks.(×) 此时需转换表达方式: ①用ago代替for,并改为一般过去时 ②用延续性动词代替瞬间动词 ③用It is/It has been…since…句型,如: He arrived here two weeks ago. He has been here for two weeks. It is/It has been two weeks since he arrived here. 当瞬间动词用于否定句时,则可以与时间段连用。 如:I haven’t gone there for six years.我六年没去那儿。 (3)表示过去发生过一次或多次的动作已成为某种经验。 I have been to Paris twice.我去过巴黎两次。 It’s one of the most interesting films I’ve ever seen.它是我看过的最有趣的电影之一。 比较have been to与have gone to have been to表示“去过某地”,现在已回来了,可以与ever twice等词连用。如: I have ever been to London.我曾去过伦敦。 have gone to表示“去某地了”现在尚未回来,不能与ever, twice等词连用。 He has gone to London.他去伦敦了。 现在完成时与一般过去时的区别 二者都表示“动作已经发生”,区别在于: (1)现在完成时强调这一动作与现在的关系,即对现在产生的结果、影响等,而一般过去时只表示过去的事实,不表示和现在的关系。 He has learned French for three years.他学法语已三年了。 He learned French for three years.他曾学过三年法语。 Who has taken my bag? I couldn't find it. 谁拿走了我的包?我找不着了! He cleaned the house yesterday. 他昨天打扫过房间。 The room is clean, for he has cleaned it already. 房间很干净,因为他已经打扫过了。 (2)现在完成时不可与表示过去的时间副词连用,而一般过去时则可以。 He has done some washing yesterday. (F) He did some washing yesterday. (T) 他昨天洗衣服了。 过去完成时的用法 与现在完成的用法相同,只不过作为衡量基准点的时间点不同,现在完成时以现在作为衡量的基准点,而过去完成时则以过去某个时刻作为基准点。 (1)表示在过去某一时刻或动作之前完成了的动作,即“过去的过去”,常by, before引导的时间状语连用。 (2)表示由过去某一时间开始,一直延续到过去另一时间的动作或状态。常与for和since引导的时间状语相连用。 |