现在完成时用来表示之前已发生或完成的动作或状态,其结果的确和现在有联系。动作或状态发生在过去但它的影响现在还存在;也可表示持续到现在的动作或状态。
现在完成时用法1:表示过去发生的动作或事情,对现在造成的影响。
2:表示从过去开始发生的动作持续到现在,有可能马上结束,但也有可能继续下去。
3:现在完成时的动词必须具有可持续性,至少是能重复一次以上的动作。

现在完成进行时(Present perfect continuous)
主语+have/has+been+动词-ing
(一)表示从过去某时开始一直持续到现在的动作,并且还将持续下去。
(二)表示在说话时刻之前到现在正在进行的动作。
(三)有些现在完成进行时的句子等同于现在完成时的句子。
(四)大多数现在完成进行时的句子不等同于现在完成时的句子。
(五)表示状态的动词不能用于现在完成进行时。
(六)一些现在完成时的句子也与现在完成进行时的句子含义相同
(七)表示现在以前一直在进行的动作强调动作的未完成性

1)这两个时态的主要差别是,现在完成时表示动作业已完成, 而完成进行时却不一定如此:
I’ve made a cake. 我做了一个蛋糕。(已做好)
I’ve been making a cake. 我一直在做一个蛋糕。 (不一定做好了)
She’s painted a picture. 她画了一幅画。(已画好)
She’s been painting a picture. 她在画一幅画。(可能还没画好)
They’ve built a bridge. 他们建了一座桥。(已建好)
They’ve been building a bridge. 他们一直在建一座桥。(可能还在建)
He’s written a novel. 他写了一部小说。(已完成)
He’s been writing a novel. 他在写一部小说。(可能尚未完成)
2)许多静态动词都只能用于完成时而不能用于完成进行时:
I’ve known that for a long time. 这事我已经知道很久了。
The strike has lasted six months. 这次罢工已经持续了6个月。
Nobody has seen him since last week. 从上周起就没人见到过他。
We’ve had terrible weather for nearly two weeks. 几乎有两星期天气都很恶劣。
They’ve owned the house for many years. 这房子他们已经拥有许多年了。
I’ve always thought you’re right. 我一向认为你是对的。
但当意思发生转变时也可能用于完成进行时:
I’ve been thinking of doing so for a long time. 我好久以来一直想这样做。
Tom has been seeing about a work permit for you. 汤姆一直在设法帮你取得工作许可证。
Which judge has been hearing the case? 哪位法官在审这个案子?
She has been having a tooth out. 她在拔牙。
The children have been looking forward to this holiday for months. 孩子们好几个月来一直盼望着这个节日。
want 这个动词有时可用于完成进行时,表示“一直想”:
You’re the very man I’ve been wanting to meet. 你正是我一直想见的人.
3) 有少数动词用两种时态都可以,意思差别不大,如:
They have been working very well this term. 这学期他们学习很好。
They have worked very well this term.

It has been raining for two hours. 下了两个小时的雨。
It has rained for two hours.

I have been hearing from her regularly. 我定期收到她的来信。
I have heard from her regularly.

We have looked for mushrooms but have not found any. 我们找寻蘑菇但一无所获。
We have been looking for mushrooms but have not found any.

强调时间长度用完成进行时比较好:
I’ve been coughing all night. 我咳了一整夜。(比I’ve coughed all night. 更能强调咳得久)
All the time she’s been sitting there in silence. 她一直静坐在那里。
All these years we’ve been trying to get in touch with him. 这些年来我们一直在设法和他联系。
He’s been hoping for a raise in salary all the time. 他一直盼着加薪。