现在完成进行时1)从过去开始持续到现在并还可能持续下去2)现在看出明显结果
现在进行时1)此时此刻正在进行的动作2)现阶段经常发生的动作
现在完成时:1)过去发生的动作对现在造成的影响2)从过去一直持续到现在
下面是例子
最近和一个朋友喝咖啡,我们聊到了英语语言的学习问题。我告诉她,对中国学生来说,学英语最大的难点就是复杂的时态变化。英语时态变来变去,搞得我们晕头转向。她则无辜地笑道:“Tense would make me tense if I were a Chinese student.”(我要是中国学生,时态一定也会让我疯掉的。)
产生这种难题的原因很简单,就是因为两种语言思维表达重大差异造成的。汉语是不太重视时间表达的,对于中国学生来说,3时4态的英语精确时间表达很难进入我们的思维。思维里既然没有时间概念,所以在用英语表达时,我们不是结结巴巴老在琢磨该用什么时态,就是撇开时态不顾,一律用一般现在时。
其实,对于“老外”来说,时态已融入他们的思维,他们不需要知道像“现在完成时”、“现在完成进行时”等这样的语法术语,而是能够潜意识地知道用什么样的动词时态形式来表示什么样的时间概念。比如,我当时就问我的这位朋友,我可不可以这样说:
(1) I have been drinking five cups of coffee this afternoon.
今天下午我一直喝了五杯咖啡。
她给我的回答是“No way”(不可能这样讲)。我问她为什么,她则很茫然地摇摇头说“I don’t know.”这个问题其实涉及到现在完成时与现在完成进行时的区别问题。
要想很好地区分have done和have been doing,我们需要从两个方面来讨论:一、完成时态和完成进行时态本身意义的差别;二、要结合动词的不同延续特点。首先我们来看两种时态的意义差别,两者根本区别是:完成进行时强调动作持续的过程(emphasis on duration),完成时强调动作的结果或成就(emphasis on achievement)。具体来讲,现在完成进行时have been doing强调的是在一段时期内某项活动的持续性,强调的是动作本身。现在完成时have done则是强调动作产生的结果或取得的成就,而不是动作本身。二者的这种区别我们从下面的这些例句可以很好地领悟到:
(2) a. My hands are very dirty. I’ve been painting the house.
b. I have painted the house green. The house was white, but now it’s green.
思维分析:
句a中have been painting表示painting动作一直在持续,活动还没有结束,所以才有my hands are very dirty这样的现状。句a意思是“我的手很脏,我现在一直在给房间刷漆”。
句b中have painted表示painted动作已经结束,而且动作导致的结果是the house was white, but now it’s green房间现在是绿色的了。
(3) a. I’ve been cleaning the house but I still haven’t finished.
b. I’ve cleaned the house, but I still haven’t finished.(×)
思维分析:
为什么这里句a是正确的,而句b是错误的呢?理由很简单,句a用完成进行时have been cleaning就表明动作一直在持续,还没有结束,意思是“我一直在打扫房间,还没有扫完”。句b是错误的,因为它前面句子用了完成时态have cleaned就应该表示动作cleaned已经结束,即“我把房间已经打扫完了”,而后面接了一个I still haven’t finished,显然前后矛盾。
根据上面讨论的这两种时态本身意义的差别,我们就可以回答上面第一个问题,即我们为什么不能说上面句(1):
I have been drinking five cups of coffee this afternoon.(×)
前面说过,完成进行时强调动作持续的过程,而完成时则强调动作的结果或成就。既然强调动作的持续性,因此完成进行时是表示一种看起来是不间断的动作。如果涉及到做一件事的次数或一共做了多少件事情,这时都相当于把动作分割为一次一次的间断动作了,所以不能用现在完成进行时。从另一方面来说,既然讲到动作的次数或是一共做了几件事情,这两种情况都是在强调动作的结果或成就(emphasis on achievement),而不是动作本身过程(emphasis on duration),所以只能用现在完成时have done。因此,我们可以得出这样的结论:完成进行时态不能用来谈某个动作的具体次数或几件事情。这时,我们要用完成时态。这就解释了为什么在老外思维里没有:
I have been drinking five cups of coffee this afternoon.(×)
这样的句子,而一定会这么说:
(4) I have drunk five cups of coffee this afternoon.
因为这里说出了具体的五杯咖啡。
have been doing 表示动作发生在过去对现在有影响,并且这个动作还会继续持续到将来
have done表示动作发生在过去,强调对现在的影响,但动作是否会持续下去就不清楚了
都属于完成时
但前者表示该状态还在持续 后者表已完成
至于这个句子,肯定要看上下文!
have been doing 是现在完成进行时,表过去发生的动作一直在进行到现在。
have done 是现在完成时,表在过去发生的动作对现有影响。
主要区别是have been doing 表示动作从过去一直持续到现在,并会继续下去。have done表示过去动作结束了,对现在产生了影响。
例句:
have been doing
1、
Biological systems have been doing this for billions of years.
生物系统亿万年来一直都是这样。
2、
Those who have been doing evil should immediately stop, repent and start anewand make amends for their crimes by good deeds.
做过坏事的人,赶快停止作恶,悔过自新,将功赎罪。
3、
Franny and I have been doing this for years.
franny和我干这个已经有点年头了。
4、
I have been doing this course for a year.
我学了这个课程已经有一年了。
have done
1、
I have done woodwork for many years.
我做木工好多年了。
2、
If I had not been enjoying the work, I would not have done so much of it.
如果我不喜欢这份工作的话,就不会这么卖命干了。
3、
I asked myself what I would have done in such a situation.
我问自己在这种情况下我会怎么做。
4、
What am I supposed to have done wrong now?
我这会儿究竟做错了什么?