第 48 课 · 第 4 阶段: 时态与情态动词
现在完成进行时
高级Present perfect continuous
构成与用法
have/has been + -ing — 以前开始、现在仍在继续的动作
1.形式
现在完成进行时 = have / has + been + -ing。Been 不变,只有 have/has 随主语变化。
| I / you / we / they | he / she / it | |
|---|---|---|
| 肯定式 | I've been waiting. | It's been raining. |
| 否定式 | I haven't been sleeping well. | She hasn't been working. |
| 疑问式 | Have you been waiting long? | Has it been raining? |
| 简略回答 | Yes, I have. / No, I haven't. | Yes, it has. / No, it hasn't. |
三个部分缺一不可:have/has + been + -ing。常见的失误:漏掉 been(I have working),把 been 写成 being(has being working),或忘了加 -ing(has been learn)。
2.什么时候用
1. 从过去开始、现在还在进行的活动——常和 How long…?、for、since、all day 连用
It's been raining since lunchtime.
从中午开始一直在下雨。
How long have you been learning English?
你学英语多久了?
Nam has been working for the same company since 2019.
阿南从 2019 年起一直在同一家公司工作。
2. 刚刚停止的活动,结果还看得出来
Your eyes are red. Have you been crying?
你眼睛红红的,你哭过了吗?
Sorry I'm so sweaty — I've been running.
不好意思我一身汗——我刚才在跑步。
3. 最近一再做的事——和 lately、recently、these days 连用
I've been going to the gym a lot lately.
我最近经常去健身房。
Linh hasn't been sleeping well recently.
阿玲最近一直睡不好。
3.和现在完成时比较
进行形式强调活动本身和它持续了多长时间;一般形式强调结果——完成了什么、做到了什么。
| 进行形式:have been doing | 一般形式:have done |
|---|---|
| 活动、过程 | 结果、完成了什么 |
| 多长时间:How long…?、for、since | 多少:数量、次数 |
| 可能还没完成 | 已经完成 |
| I've been painting the room. | I've painted the room. |
I've been reading this book for a week. I'm on page 90.
这本书我已经读了一个星期,读到第 90 页了。(还没读完)
I've read three books this month.
这个月我已经读了三本书。(有数量——已完成)
She's been writing emails all morning.
她一上午都在写邮件。
She's written twelve emails this morning.
她今天上午已经写了十二封邮件。
计算多少(three books、twelve emails、How many…?)→ 通常用一般形式。说多长时间(for two hours、all day、How long…?)→ 通常用进行形式。
4.状态动词
know、like、want、believe、belong、have(= 拥有)这类状态动词通常不用进行形式,所以即使说多长时间,也要用现在完成时。
I've known Hoa since we were at school.
我从上学时就认识阿花了。(不说:have been knowing)
How long have you had your cat?
你养这只猫多久了?(have = 拥有)
live、work、study、teach 用两种形式都对,意思几乎一样。进行形式听起来更临时,一般形式更长久。
We've been living with my parents since March.
我们从三月起一直跟我父母住在一起。(临时)
My grandparents have lived in this village all their lives.
我爷爷奶奶一辈子都住在这个村子里。(长久)
5.和现在进行时比较
现在进行时只说某事正在发生。一旦加上多长时间(for、since、How long…?),就要用现在完成进行时。
We're waiting for the bus.
我们在等公交车。
We've been waiting for the bus for forty minutes!
我们等公交车已经等了四十分钟了!(不说:We are waiting … for forty minutes)
中文说“我学英语两年了”,动词没有变化,所以很多人会说 “I'm learning English for two years”,因为这件事还在进行。但一说到多长时间,英语就要用 I've been learning English for two years。
6.常见错误
It is raining since this morning.It has been raining since this morning.
since → 用完成时。
I have been work here since 2020.I have been working here since 2020.
been + -ing。
He has being working on this project since March.He has been working on this project since March.
have/has + been,不是 being。
I have been studying for this exam since three weeks.I have been studying for this exam for three weeks.
three weeks 是一段时间 → for。
I've been knowing her for years.I've known her for years.
know 是状态动词 → 用一般形式。
Did you been exercising lately?Have you been exercising lately?
疑问句把 have/has 放在主语前——不用 did。
例句
- My eyes hurt. I have been looking at this screen since nine o'clock.
- How long have you been learning English?
- My phone has been ringing for five minutes. Can you answer it?
- Grandma has been cooking in the kitchen all morning, so lunch will be delicious.
