一)构成不同一般过去时:主语+动词过去式现在完成时:主语+have/has+动词过去分词e.g.1.Thetrainarrivedtenminutesago.Thetraindidn’tarrivetenminutesago.
Didthetrainarrivetenmin-
utesago?Yes,itdid.No,itdidn’t.2.Ihavehadsupper.Ihaven’thadsupper.
Haveyouhadsupper?Yes,Ihave.No,Ihaven’t.(二)用法不同
一般过去时表示过去某一时刻或时间内发生的动作(与现在无关)。
现在完成时通常可以表示在说话之前已经完成,而后果或影响至今存在。换言之动作发生在过去,结果影响到现在。
e.g.Ihaveopenedthedoor.(Iopenedthedoorandthedoorisopennow.)
Ihaveboughtadictionary.(IboughtadictionaryandIhaveitnow.)
现在完成时还可以表示开始于过去持续到现在动作。
Hehasbeenatthisschoolfor
threeyears.I’veknownLiLeiforover
twoyears.(三)时间状语不同一般过去时常跟表示过去时间的副词连用。
(1)yesterdayyesterdaymorn-
ing/evening,thedaybeforeyesterday(2)…agothreehoursago,a
fewyearsago(3)last…lastmonth,lastweek,lastnight
(4)justnow,theotherday,atthattime,in+过去时间现在完成时常和以下副词连用:(1)just,already,yet,recent鄄
ly,lately,sofar,these+一段时间(2)never,ever,before,once,twice,threetimes…
(3)for+一段时间fortwoweeks,foralongtime
(4)since…since2003,since
threeyearsago,sincehearrivedinChina.(四)在现在完成时中,表示瞬间的动词不能和for,since…表示一段时间的状语连用。
这个问题是很多英语学习者都困惑的,下面将彻底解决这个问题。
首先要分清楚一般过去时态和过去完成时态的区别在哪里。
我们知道一般过去时态是指发生在“过去时间”的事件。但是如果要强调过去发生事件的先后怎么办呢?这时英语就用到了过去完成时态。如下图所示:
如上图所示,如果一个句子中有两个过去的事件,过去事件1、过去事件2,并且要强调其先后顺序的话,那么过去事件1使用一般过去时态,过去事件2则使用过去完成时态。
过去完成时态的形式为 had done 形式,其中的had内涵仅仅表示时间的相对提前,除此以外别无他意。
示例如下:
1. he told her that he had gone to "sell his friend a flak jacket."
动作事件1 动作事件2
他告诉她,他去“卖他的朋友一件防弹衣”。
2. She added that Mr Griffin had tried to save his friend before fleeing the scene。
动作事件1 动作事件2
她补充说,格里芬在逃离现场之前曾试图救他的朋友。
在一句英语句子中,如果需要强调两个动作事件的先后次序,则先发生的动作使用过去完成时态,而后发生的则使用一般过去时态。
示例如下:
3. Mary Warstler told (事件1)the news channel that her boyfriend did not think (事件2)the gun was loaded(事件3)and had not meant(事件4) to kill his friend.
玛丽·沃斯特勒在接受新闻频道采访时表示,她的男友并不认为这把枪装有子弹,也无意杀死他的朋友。
事件1 事件2 事件3 都是发生在过去时间,没有强调先后次序,所以都使用了一般过去时态。
事件4 使用了过去完成时态,强调了一下时间先后。
最后在重点强调一下had/have/has等完成时态的用法,无论其表达真实时态,还是非真实时态(虚拟语气),无论其作为谓语动词,还是用于非谓语动词中,其都是表示“时间”的先后顺序。
这一点详见请参看《英语思维:解密英语语法的原理》一书。