现在完成时(Present perfect)过去发生并且已经完成的动作对现在造成影响或后果,过去某一时间开始并一直持续到现在的动作或状态。
基本结构:主语+have/has+动词的过去分词(done)
①肯定句:主语+have/has+动词的过去分词+宾语.
②否定句:主语+have/has+not+动词的过去分词+宾语.
③一般疑问句:Have/Has+主语+动词的过去分词+宾语.
④特殊疑问句:特殊疑问词或词组+一般疑问句(have/has+主语+过去分词+其他)
定义: (1) 强调动作是过去发生的
(2) 强调对现在的影响或结果
(3) 在过去不确定的时间里发生的动作,但是结果对现在有影响。
但过去分词一定要选择准确。

1 、规则动词:规则动词的过去分词的构成规则与规则动词的过去式的构成规则相同。四点变化规则:
(1)、一般动词,在词尾直接加“ ed ”。 work---worked---worked ,visit---visited---visited (2)、以“ e ”结尾的动词,只在词尾加“ d ”。 live---lived---lived ,
(3)、以“辅音字母 + y ”结尾的动词,将 "y" 变为 "i" ,再加“ ed ”。
study---studied---studied ,cry---cried---cried
(4)、重读闭音节结尾,末尾只有一个辅音字母,先双写该辅音字母,再加“ ed ”。 stop---stopped---stopped , drop---dropped--dropped不规则动词 burn---burnt---burnt 1hide hid hiden 隐藏 2forget forgot forgoten 忘记 3see saw seen 看见 4take took taken

2 、不规则动词: AAA型 原型 过去式 过去分词
burst burst burst cast cast cast cost cost costcut cut cut
hit hit hit hurt hurt hurt put put put set set set shut shut shut
spread spread spread let let let read read read led led led
AAB型 beat beat beaten
ABA型 become became become run ran run come came come
特殊情况  read read read  read原形发音为/ri:d/,过去式和过去分词发音为/red/
ABB型 bring brought brought buy bought bought build built built burn burnt burnt catch caught caught dig dug dug  feel felt felt fight fought fought  find found found feed fed fed get got got hang hung hung hear heard heard  hold held held keep kept kept lay laid laid  lead led led lose lost lost  leave left left lend lent lent  make made made mean meant meantmeet met met  pay paid paid sell sold sold shoot shot shot say said said
sit sat sat stand stood stood shine shone shone sweep swept swept
sleep slept slept teach taught taught tell told told think thought thought win won won  

ABC型 begin began begun blow blew blown break broke broken choose chose chosen draw drew drawn drive drove driven drink drank drunk fly flew flown forgive forgave forgiven forget forgot forgotten freeze froze frozen give gave given grow grew grown know knew known ride rode ridden rise rose risen ring rang rung shake shook shaken sing sang sung sink sank sunk swim swam swum throw threw thrown write wrote written
take took taken wear wore worn


用法
(1)现在完成时用来表示现在之前已发生过或完成的动作或状态,但其结果却和现在有联系,也就是说,动作或状态发生在过去但它的影响现在还存在.
I have spent all of my money.(含义是:现在我没有钱花了.)
Jane has laid the table.(含义是:现在桌子已经摆好了.)
Michael has been ill.(含义是:现在仍然很虚弱)
He has returned from abroad. (含义是:现在已在此地)

(2)现在完成时可以用来表示发生在过去某一时刻的,持续到现在的动作(用行为动词表示)或状态(be动词表示)常与for(+时间段),since(+时间点或过去时的句子)连用.
①for+时段  
②since+过去一个时间点(译为:自从……以来)
③since+时段+ago
④since+从句(过去时)
●⑤It is+时段+since+从句(过去时) Mary has been ill for three days. I have lived here since 1998.
●注:瞬间动词(buy,die,join,lose……)不能直接与for since 连用。要改变动词come/arrive/reach/get to-----be in go out----be out finish----be over
 open----be open  die----be dead
★代替buy My brother has had(不能用has bought) this bike for almost four years.

★2、用keep或have代替borrow
I have kept(不能用have borrowed) the book for quite a few days.
★3、用be替代become
How long has your sister been a teacher?
★4、用have a cold代替catch a cold Tom has had a cold since the day before yesterday.

★5、用wear代替put on
b)用“be+形容词”代终止性动词
1、be+married代marry 2、be+ill代fall (get) ill
3、be+dead代die 4、be+asleep代fall (get) asleep
5、be+awake代wake/wake up 6、be+gone代lose,die,sell,leave
7、be+open代open 8、be closed代close/shut
9、be+missing(gone,lost)代lose
c)用“be+副词”代终止性动词 1“be+on”代start,begin  2“be+up”代get up
3“be+back(to)”代return to,come back to,go back to
4“be here (there)”代come(arrive,reach,get) here或go (arrive,reach,get) there等等
d)用“be+介词短语”代终止性动词
1.“be in/at +地点”代替go to /come to 2.用be in the army 代替join the army 3.“be in/at +地点”代替move to
常用瞬间动词变延续性动词表
常用瞬间动词变延续性动词表:
1. have arrived at/in sw. got to/reached sw. come/gone/moved to sw.
→have been in sw./at…相应的介词
2. have come/gone back/returned → have been back
3. have come/gone out →have been out
4. have become → have been
5. have closed / opened→ have been close/open
6. have got up → have been up;
7. have died → have been dead;
8. have left sw. → have been away from sw.
9. have fallen asleep/got to sleep → have been asleep;
10. have finished/ended/completed → have been over;
11. havemarried → have been married;
12. have started/begun to do sth. → have done sth. ;
13. have begun → have been on
14. have borrowed/bought →have kept/had
15. have lost → haven’t had
16. have put on →have worn
17. have caught /get a cold → have had a cold;
18. have got to know → have known
19. have/has gone to → have been in
20. have joined/have taken part in the league/the Party/the army
→have been a member of/ have been in/have been the Party’s member/the league member/the soldier…

1.现在完成时不能单独与准确时间连用,(如表示过去的时间状语)
如yesterday(morning、afternoon),last(morning、afternoon)等,除非与for,since连用.

2.现在完成时往往同表示不确定的过去时间状语连用
,如already(肯定), yet(否定,疑问), just, before, recently,still, lately等:  He has already obtained a scholarship.
I haven't seen much of him recently (lately).

3. 现在完成时常常与表示频度的时间状语连用,
如often, sometimes, ever, never, twice, on several occasion等:
Have you ever been to Beijing
I have never heard Bunny say anything against her.

4. 现在完成时还往往可以同包括现在时间在内的时间状语连用,
如now, up to these few days/weeks/months/years, this morning/week/month/year, just, today, up to present, so far等:
Peter has written six papers so far.
Man has now learned to release energy from the nucleus of the atom.

5. 现在完成时还可以用来表示过去的一个时间到现在这段时间内重复发生的动作. We have had four texts this semester.

6.现在完成时的"完成用法"
现在完成时的"完成用法"指的是动作发生在过去某一时刻并已结束,但该动作对现在产生了影响,与现在情况具有因果关系。
例如:He has turned off the light.他已把灯关了。(动作结束于过去,但说明的是现在的情况--灯现在不亮了。)
现在完成时"完成用法"的特点是动作不延续,因此,该时态只能与表示不定的过去时间状语(如:already,yet,before,recently等)、频度时间状语(如:never,ever,once等)、包括现在时刻在内的时间状语(如:this morning / month /year...,today等)连用。
例如: Have you found your pen yet?你已找到你的钢笔了吗?

7.现在完成时的"未完成用法"
现在完成时的"未完成用法"指的是动作开始于过去某一时刻,一直延续到现在,或可能还要继续下去。
例如:He has lived here since 1978.自从1978年以来,他一直住在这儿。(动作起始于1978年,一直住到现在,可能还要继续住下去。)
I have been in the army for more than 5 years.我在部队已经呆了五年多了。(动作开始于5年前,一直延续至今,有可能还要继续下去。)
此种用法的句中常需一个表示一段时间的状语(由since或for引导),或表示与现在时刻相连的时间状语(如:up to now,so far)等。
例如:I have heard nothing from him up to now.到目前为止我没有他的任何消息。
注意:(1)现在完成时的未完成用法只适用于延续性动词,不可用于终止性动词,即瞬间完成或延续时间很短的动词。如:come,go,arrive,leave,join,become,die等。

8.一段时间+has passed+since从句

9. 现在完成时常和短语 "up to now /till now", "so far" (意思是从过去某一确定的时间一直延续到现在.)
 Up to/till now he's read many story books. 至今他已读过好多故事书。
I've been to New York three times so far. 至今我已到纽约去过三次。
10 has gone (to),has been (to), has been (in) 的区别 gone:去了没回
been to :去过  been in:呆了很久

10.不能与when连用
一般过去时和现在完成时
( 1 )、一般过去时的谓语动词用过去式,而现在完成时的谓语基本构成是“主语+ have/ has + 动词(V.)的过去分词”。 过去时表示过去某时发生的动作或单纯叙述过去的事情,强调动作;现在完成时为过去发生的,强调过去的事情对现在的影响,强调的是影响。
(2) 、一般过去时通常与表示过去的时间状语连用。如: yesterday, last week , two years ago ,just now ,in 2002 等;而现在完成时则常与 just ,already ,ever ,never 等副词和 these days ,this week ,since ......, for ...... 等表示一段时间的状语连用。 试比较以下几组句子,有什么区别:
① A:Have you seen the film ? B:Did you see the film ?
分析:你看过这部电影吗?( A )句强调的是被问者对剧情是否了解;
( B )句强调的是看这部电影的动作是否发生过,并不强调是否知道其内容。
② A:How has he done it ?
B:How did he do it ?
分析:他是怎么做的这件事?( A )句强调的是他做这件事的方式对现在产生了某种影响;
( B )句单纯的询问做这件事的方式。
③ A:He has lived in Beijing for 8 years .
B:He lived in Beijing for 8 years .
分析:他在北京住了 8 年。( A )句讲的是到目前为止他在北京住了 8 年,可能还会继续在北京住下去。( B )句讲的是他在北京住过 8 年,现在已经不在北京了。
(3)现在完成时强调过去发生的动作对现在的影响和结果,而一般过去时与现在没有联系,只是说明某个动作发生的时间是在过去。
比:I have washed the car. 我洗过了车。(看上去很漂亮)
I washed the car a moment ago. 我刚才洗过车了。
She has watered the flowers. 她已经浇了花。(不需要再浇了)
She watered the flowers yesterday. 她昨天浇的花。
I have written the letter but I haven't posted it yet. 信我已经写好了,但还没有寄出。
I wrote the letter last week and I posted it three days ago. 我上周写的那封信,3天前寄出的。

(3)现在完成时表示的动作或状态延续到现在并可能延续下去,而一般过去时则单纯表示过去某段时间内的经历。
比:It has rained for five hours. 雨已经下了5个小时了。
It rained for five hours yesterday. 昨天下了5个小时的雨。
He has waited for her for two hours. 他等她已经两个小时了。
He waited for her two hours and then went home. 他等她等了两个小时,然后就回家了。
I have reviewed two lessons this morning. 今天上午我已经复习了两课。(说话时还在上午)
I reviewed two lessons this morning. 今天上午我复习了两课。(说话时已是下午或晚上)
现在完成时与现在完成进行时相同点
1. 现在完成时和现在完成进行时都可以表示从过去某一时刻开始一直延续到现在的动作.如:
I have worked in this school since 2001.
I have been working here since 2001.
2. 现在完成时和现在完成进行时都可以表示一段时间内进行的动作.例如:
Mr. Smith has taught English for 20 years.
Mr. Smith has been teaching English for 20 years.
以上句子用现在完成时与现在完成进行时,含义上没有什么差别,两种时态可以互相换.但两种时态也存在有意义上和用法上的差别.

现在完成时与现在完成进行时不同点
1. 从定义上来看,现在完成时表示的是已经完成的动作或者状态,常常与already"已经"或ever "曾经"连用,如:
We have already learnt Module

3.我们已经学习了第三模块.
She is the most beautiful girl I have ever seen.她是我见过的最漂亮的女孩.
而现在完成进行时则表示的是从过去某一时刻开始一直延续到现在,有可能还要进行下去的动作,一般不与already或ever等连用,如:
We have been learning Module

4. 我们一直在学习第四模块.(不一定学完)
注意下面这组句子含义上的区别:
I have read the novel. 我看过那本书了. (已看完)
I have been reading the novel. (一直在看,不一定看完)
2. 相对于现在完成时表示一次性,现在完成进行时可以表示动作的重复.如:
I have met him at the library. (我在图书馆见过他.)
I have been meeting him at the library. (我经常在图书馆看见他.)

3.现在完成时和现在完成进行时都可以表示刚刚结束的动作,但在含义上有区别.现在完成时强调的是动作的结果,而现在完成进行时强调的则是动作的过程.如:
—You look so tired, what have you been doing 你看起来很累,做什么了 (强调动作)
—We are very tired. We've been cleaning the house. 我们很累,我们刚才在打扫房子.(强调该动作所导致)
—We've cleaned the house. You may come in now. 我们打扫过房子了,你可以进来了.(强调结果"房子干净")

4. 现在完成进行时态不能用来谈某个动作的具体次数或几件事情.这时,我们要用现在完成时态.如:
I have been drinking five cups of coffee this afternoon.(×)
I have drunk five cups of coffee this afternoon.

5.现在完成时强调"事实";而现在完成进行时则强调"动作",并且常含有喜悦,愤怒,不满,厌恶等感情色彩.如:
The lazy boy has lain in bed for a whole day. 这个懒孩子在床上躺了一天.(强调事实)
The lazy boy has been lying in bed for a whole day. 这个懒孩子在床上躺了一天了.(强调动作,含有对小男孩厌恶的感情色彩)

6. 如果没有时间状语,现在完成进行时有延续性,现在完成时没有.如:
I've been cleaning the house but I still haven't finished.
I've cleaned the house, but I still haven't finished.(×)

时间状语
现在完成时是一个与过去时间和现在时间都有关系的时态,因此,具有这样特征的时间状语都可以与现在完成时连用,具体情况有以下几种:
1. 与表示一段时间的状语连用,如“ for +段时间”,“ since +时间点”。例如: We have lived in this city for more than 40 years.
从以上两个例句我们可以看出,与表示一段时间的状语连用时,谓语动词常为 stay, live, teach, learn, work, sleep, read, wait, keep 等具有延续性意义的动词。

2. 与笼统表示过去时间的状语连用,如 already, never, ever, just 等。含有这类时间状语的句子,其谓语动词表示句中的行为或动作发生在过去,但对现在有影响。例如:I've just found this library book.
have found 这一动作发生在过去,但影响到现在,即现在图书馆的书在我这儿。
just 所表示的“刚才”是与现在有密切相关的过去时间。
How beautifully she sings! I have never heard a better voice.
她唱得多美啊!我从来没听到过比这更优美的歌喉。
never 表示广义的过去,而且一直到目前才截止。

3. 与表示包含过去和现在的一整段时间的状语连用,如 lately, recently, in the past few years, these few years, these days, up to now, so far 等。例如:
How have you been recently ?
你近来状况如何?
The famous writer has written a new book in the past two years.
那位著名的作家在过去的两年里写了一本新书。
Have you seen her parents these days?
这些天你看见她的父母了吗?
The Browns have visited a lot of places in China so far.
迄今为止,布朗一家已经参观了中国的许多地方。

注意:现在完成时不能与单纯表示过去时间的状语连用,如 yesterday, last week, in 2002, three days ago 等,因为它们与现在毫无关联。比如我们不能说: Han Mei has seen the film two days ago. 因为 two days ago是单纯指过去的一个时间点,只说明“看”这一动作是在两天前发生的,与现在无关。但是,只要将它改为since two days ago 就可以用在现在完成时的句子里了,因为它已经含有从过去到现在的时间段的意义了。