在以前的文章中,我教了大家在谈论过去事件时使用哪种时态的问题,主要是关于一般过去时与现在完成之间如何选择。
事实上,现在完成时有两种形式,简单形式(一般现在完成时)和持续形式(现在完成进行时),所以选择比最初看起来更复杂。
下面的句子是两个现在完成形式的例子:
I've lived in Frankfurt for 10 years. (简单)
I've been living in Frankfurt for 10 years. (持续)
I haven't done much exercise recently. (简单)
I haven't been doing much exercise recently. (持续)
What have you done? (简单)
What have you been doing? (持续)
对于英语学习者来说,问题是到底决定使用哪种形式,因为在某些情况下,它们具有相同的(或几乎相同的)含义,而在其他情况下,它们各自有不同的含义;而且在某些情况下,只有一种形式是可能的。
1)两种形式(简单的和连续的)有着或多或少相同的含义,请看下面的句子:
I've worked in the same job for the past 30 years.在过去的30年里,我一直在同一个工作岗位工作。
I've been working in the same job for the past 30 years.在过去的30年里,我一直在同一个工作岗位工作。
I haven't eaten much chocolate recently.我最近没吃太多巧克力。
I haven't been eating much chocolate recently.我最近没吃太多巧克力。
在这些句子的第二句中有一个非常细微的暗示,即动作或状态可能是暂时的,比较深入的英语学习者才需要关注这一区别。
2)下一对句子是当两种形式有不同含义时的例子。
I've learnt the new words.我已经学会了新单词。
I've been learning the new words.我一直在学习新单词。
I've done my homework.我已经做完家庭作业了
I've been doing my homework.我一直在做作业。
在第一个句子(第一个例子)中,讲话者想强调他已经完成了所有行为动作。在第二句话中,演讲者想指出他花了一些时间学习新单词,但不清楚他是否已经全部学习了
3)有很多场合只有两种形式中的一种是可能的。请看下面几对句子:
- I've had my car for twenty years.
- I've been having my car for twenty years.
- She's had a shower for over an hour.
- She's been having a shower for over an hour.
在第一个例子中,动词have(在占有的意义上)不能用在连续形式中,因此第二句是不可能的。在第二个例子中,第一个句子是不正确的,因为它不表达动作的持续时间。
那么,有没有什么有用的规则可以帮助学习者从这个复杂的可能性中选择正确的动词呢?事实上是这样的,他们总结如下:
1)描述过去的一个简单并完成的事件,并对当前有影响,使用现在完成时:
- I have bought a new computer.我买了一台新电脑。(你想看吗?)
- You've broken my calculator. (Why can't you be more careful?)你把我的计算器弄坏了。(你为什么不能更加小心?)
2)对于不具有连续形式的动词,使用现在完成时。
- I've known her for 30 years.我认识她已经30年了。
- I have never liked other food.我从来没有喜欢过其它菜。
3)使用现在完成时或现在完成进行时来谈论一些时间之前开始并继续进入现在的状态或行为。它们或多或少可以互换。
- I've played the piano all my life.
- I've been playing the piano all my life
- It's rained non-stop all day.
- It's been raining non-stop all day.
4)强调动作持续到现在或刚刚结束,使用现在完成进行时,当你更关心活动本身而不是它是否已经完成的问题时。
- I've been working in the garden all morning and now I'm ready for a drink.我整个上午都在花园里干活,现在我已经准备好要喝一杯了。
- She must be exhausted. She's been playing tennis for 3 hours now.她一定筋疲力尽了。她打网球已经3个小时了。
测验下吧:
考虑到这些规则,看看下面的句子对,判断两者是否可能。如果它们都是可能的,试着解释使用它们的说话人的意图或意义的差异。让我们从介绍中的两个例子开始:
- I've lived in Frankfurt for 10 years. (simple)
- I've been living in Frankfurt for 10 years. (continuous)
这两个句子都是可能的,它们具有相同的意义。在第二句话中有一个细微的暗示,说话者认为他在法兰克福的逗留是暂时的。
- What have you done? (simple)
- What have you been doing? (continuous)
这些都是可能的,但有不同的含义。第一句话可以由一位母亲听到,她在儿子的房间里听到一声嘈杂的声音,然后进去问他发生了什么事。在第二句话中,儿子已经从房间里回来了,他的母亲想知道他在过去的几个小时里是做什么。
- It's OK. I haven't waited for very long.
- It's OK. I haven't been waiting for very long.
第二句比第一句更有可能。演讲者强调动作的持续时间(等待),因此使用现在完成连续。
,