第 50 课 · 第 4 阶段: 时态与情态动词
过去完成进行时
中级Past perfect continuous
构成与用法
had been + -ing——一直持续到过去某一时刻的活动
1.形式
过去完成进行时 = had been + 动词-ing。Had 对所有主语都一样,所以 he / she / it 也不需要任何变化。
| 句型 | 例句 | |
|---|---|---|
| 肯定式 | S + had been + V-ing | She had been working. / I'd been waiting. |
| 否定式 | S + hadn't been + V-ing | They hadn't been sleeping well. |
| 疑问式 | Had + S + been + V-ing? | Had you been waiting long? |
| 问多长时间 | How long had + S + been + V-ing? | How long had he been living there? |
| 简略回答 | Yes, S had. / No, S hadn't. | Yes, I had. / No, she hadn't. |
口语中 had 通常缩写成 'd:I'd been、she'd been、they'd been。'd 紧跟在 been 前面时,一定是 had。要把 /d/ 读清楚——不读的话,I'd been 听起来像 I been,听的人就听不出过去的意思了。
2.什么时候用
1. 一直持续到过去某一时刻的活动——常和 for、since、all day、how long 连用
By the time the doctor came, we'd been waiting for two hours.
医生来的时候,我们已经等了两个小时了。
Minh had been working at the bank since 2018 when he decided to quit.
阿明决定辞职时,他已经从 2018 年起在银行工作了。
How long had you been learning English before you moved to Canada?
你搬去加拿大之前学了多久英语?
2. 解释过去的某个情况——在那之前进行的活动(可能刚刚停止)留下了痕迹或结果
Her eyes were red. She'd been crying.
她眼睛红红的,她刚才一直在哭。
The road was wet because it had been raining all night.
路面是湿的,因为下了一整夜的雨。
I was exhausted when I got home — I'd been standing all day.
我回到家时累坏了——我站了一整天。
3. 另一件事发生时仍在进行的活动(那件事常常让它停了下来)
Lan had been driving for six hours when she finally stopped for coffee.
阿兰开了六个小时的车,终于停下来喝咖啡。
They hadn't been dating long when they got engaged.
他们交往没多久就订婚了。
这个时态总需要一个过去的时刻(when I arrived、by the time…、当时的某个情况)作为回看的起点。很多学习者讲过去的故事时误用 have been -ing。如果参照点是现在 → have been -ing;如果是过去某一时刻 → had been -ing。
3.和相近时态比较
Have been -ing 还是 had been -ing? 两者都表示“做某事做了一段时间”,只是终点不同:一个到现在,一个到过去某一时刻。
I've been waiting for twenty minutes. Where are you?
我已经等了二十分钟了,你在哪儿?(到现在为止)
I'd been waiting for twenty minutes when she finally replied.
我等了二十分钟,她才终于回复。(到她回复的那一刻为止)
Was -ing 还是 had been -ing? Was -ing = 在那一时刻正在做;had been -ing = 活动在那一时刻之前一直在进行(可能已经停了)。
When I got home, Mum was cooking.
我回到家时,妈妈正在做饭。(她还在做)
When I got home, the kitchen smelled of garlic. Mum had been cooking.
我回到家时,厨房里一股蒜味。妈妈刚才一直在做饭。(我到之前她在做饭)
Had been -ing 还是 had + V3? Had been -ing 讲的是活动和多长时间;had + V3(过去完成时)讲的是已完成的结果和多少。
| had been + -ing | had + V3 | |
|---|---|---|
| 重点 | 活动,持续了多久 | 结果,完成了什么 |
| 问句 | How long…? | How many / How much…? |
| 例句 | She'd been writing emails all morning. | She'd written twenty emails by noon. |
| 完成了吗? | 不一定 | 是 |
状态动词(know、believe、own、have = 拥有…)通常不用进行形式,所以即使说的是一段时间,也用 had + V3。
We had known each other for ten years when we started the company.
我们创办公司时,已经认识十年了。(不说:had been knowing)
4.常见错误
He had been work there for ten years.He had been working there for ten years.
had been 后面要接 -ing。
I was tired because I have been driving all day.I was tired because I had been driving all day.
故事发生在过去(was)→ 用 had,不用 have。
By noon she had been reading three chapters.By noon she had read three chapters.
完成的数量 → had + V3。
I had been knowing him for years.I had known him for years.
know 是状态动词 → 不用进行形式。
How long you had been living there?How long had you been living there?
疑问句中 had 放在主语前面。
She had being waiting for an hour.She had been waiting for an hour.
had + been(be 的 V3),不是 being。
例句
- Tuan's eyes were red because he had been crying for hours.
- By the time the bus came, we had been waiting for forty minutes.
- How long had you been looking before you found a job?
- Nam had been repairing his motorbike all morning, but it still didn't start.
