关于 have been doing

之前在http://zhidao.baidu.com/question/275107175.html看到你的回答~~ 还想问关于 have been doing是怎么回事!完全晕菜!要是让我看句子我能明白!但是要是让我造句,完全搞不清三者之前的关系!比如I had been here for two years
I have been here for two years 有什么区别?我好晕哦~

have been doing 现在完成进行时。
have p.p现在完成时。
二者有共同点,但最大区别在于现在完成进行时更强调动作的持续性。比如,
She has been writing the letter since two hours ago.两个小时以来,她一直都在写信

现在完成进行时
一、现在完成进行时的谓语动词构成 have/has been working

二、现在完成进行时的功能
(一)表示从过去某时开始一直持续到现在的动作,并且还将持续下去。
I have been learning English since ten years ago.
自从十年前以来我一直在学英语。(动作还将继续下去)
(二)表示在说话时刻之前刚刚结束的动作。
We have been waiting for you for half an hour.
我们已经等你半个钟头了。(动作不再继续下去)
(三)表示一个从过去开始延续到现在,可以包括现在在内的一个阶段内,重复发生的行动。
She has been playing tennis since she was eight.
注意:
(一)表示状态的动词不能用于现在完成进行时。
I have known him for years.
我认识他已经好几年了。
(二)有些现在完成进行时的句子等同于现在完成时的句子。
I have been working here for five years.
I have worked here for five years.
我在这里已经工作两年了。
(三)大多数现在完成进行时的句子不等同于现在完成时的句子。
I have been writing a book.(动作还将继续下去)
我一直在写一本书。
I have written a book.(动作已经完成)
我已经写了一本书。

现在完成进行时与现在完成时的区别
(一) 现在完成时分“已完成”和“未完成”两种用法:
1.“已完成”指的是动作发生在过去,强调其对现在产生的影响。
I have seen this film.
我看过这部电影。(意思说我已经知道了电影的内容。)
注意:
“已完成”这种用法一般不带时间状语,但可以和already, yet,before,ever,just,no等副词连用。
I have never said he is rich. 我从来不说他有钱。

2. “未完成”指的是动作从过去开始,且一直继续到现在。因此不能用表示瞬间性的或称短暂性的动
词。“未完成”的现在完成时常与since结构或“for+一段时间”的状语连用。
I have lived here since I was born.
我一出生就住在这里。
注意:
“未完成”这种用法还常与until now, so far, in/during the past/ last...等连用。
In the past ten years, many new schools have been built up in our city.
过去十年中我市已兴建了许多新学校。

(二)现在完成进行时与现在完成时的“未完成”用法类似。它强调动作的延续,常常译做“一直在……”。其基本用法有三个:
1. 现在完成进行时表示从过去开始、现在仍在继续的动作。其时间状语除了since结构和for结构外,
还有all this time, this week, this month, all night, all the morning, recently等状语。
I’ve been waiting for an hour and he still hasn’t turned up.
我等了一个小时,可他还没来。

2. 现在完成进行时还用来表示从过去开始、现在刚刚结束的动作。
I’m sorry I’m late. Have you been waiting long?
真对不起,我迟到了。你等了很久了吧?

3. 现在完成进行时还可以用来表示反复的、连续的动作。
She has been telephoned her husband, but there is no answer.
她一直在给她丈夫打电话,但没有人接。

4. 现在完成时强调动作行为的结果、影响,而现在完成进行时只强调动作行为本身。
Tom’s hands are very dirty. He has been repairing the car.
The car is going again now. Tom has repaired it.
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-06-13
我举个例子,比如我现在是高二学生,那我可以说I have been here for two years,,那如果我现在是高三学生呢,那么我可以说I had been here for two years (utill last year)。就是说had been doing 表示的是过去发生的是对现在的影响,影响是什么呢,就是“截止到去年”我已经是高二学生了。而have been doing 则表示现在发生的事对现在的影响,影响是什么呢,就是我现在是高二的学生了。明白否!?
第2个回答  2011-06-14
123159wj的解答已经很精髓了,另外你说的 I had been here for two years 和 I have been here for two years 的区别就是:前者是过去完成时可以这么理解:我现在不在这里,但以前到过,而且还待了2年的时间;后者是现在完成时可以这么理解:我现在还在这里,已经有2年的时间了。懂了没?
第3个回答  2011-06-13
had是have的过去式,对应的,have been是现在完成时,had been是过去完成时,明白?