一、现在完成时

1、表示过去开始并持续到现在的动作。(动词必须是持续动词)

China has changed a great deal in the past 20 years. 

2、强调过去动作对现在的影响和结果。(可以使用非持续动词)

Where have you put the dictionary? I can't find it anywhere.

3、表示反复性或习惯性。常常与often, frequently及表示次数之类的词连用。

I have watched him appear on TV several times.

 

二、现在完成进行时

1、表示过去某时开始的动作一直持续到现在,并在持续期间内不断进行着。

I have been working for five years. 

It has been raining since last Friday.

2、表示重复的动作。

Jim has been ringing John every night for the last week.

 

三、区别

1、现在完成时表示动作业已完成,而用现在完成进行时谈论未完成的动作。

I have painted this room.(I’ve finished painting it.)

I have been painting this room.(I haven’t finished painting it.)

2、现在完成时关注动作的结果,尤其是谈到数字或数量时;而现在完成进行时关注动作本身,特别是解释动作可见的结果时。

He’s run three miles. (the result: He’s covered the distance of three miles.)

He’s been running for an hour. (the activity and its consequences: this is what he’s been doing for the last hour and why he is exhausted now.)

3、现在完成进行时表示重复的动作时,不能同表示具体数字的词并用。

I’ve posted a dozen postcards, but received none.

I’ve read this book several times.

I’ve been posting postcards since early December.

4、现在完成进行时带有较为强烈的感情色彩。

You have been disturbing me.

5、许多状态动词不能用完成进行时。

I’ve known that for a long time. 

The strike has lasted six months.

6、有少数动词用两种时态都可以,但若强调时间长度时用完成进行时较好。

They have been working this term.

They have worked very well this term.