跳到正文
EveryLingua
ZH
全部 84 个语法主题

字母与发音

字母与发音

时态与将来

时态与进行体

谈论将来

动词:情态动词、被动语态及其他

情态动词

被动语态(Passive)

条件句与假设

间接引语

动词搭配:-ing、to 与不规则动词

冠词、名词和形容词

名词、冠词与数量

代词

形容词与副词

介词

句子结构

句子结构

从句与句子的连接

文体与书写

书写与标点

B1  ·  时态与进行体

现在完成进行时(Present Perfect Progressive)

一件事已经持续了多久——而且还在继续。

一目了然

记住这句
已经多久了?——have been 加 -ing。
什么时候用
  1. 过去的过去
  2. 过去
  3. 与现在相连的过去
  4. 现在
  5. 将来
  6. 将来完成

与现在相连的过去 — 以前开始或发生、到现在仍然成立或仍有影响的事。

构成
I have been waiting我已经等了很久
标志词
  • how long
  • for
  • since
  • all day
  • all morning
  • lately
  • recently
易错点
错误:I am waiting for you for twenty minutes.
正确:I have been waiting for you for twenty minutes.

轮到你了

本主题共有 5 道练习。答案在浏览器里直接判断,不会离开你的设备。

构成形式

词干(规则) 时态标记 助动词

我已经等了很久I have been waiting
你已经等了很久you have been waiting
他、她、它已经等了很久he, she, it has been waiting
我们已经等了很久we have been waiting
你们已经等了很久,您已经等了很久you have been waiting
他们已经等了很久they have been waiting
肯定句I have been waiting. / She has been waiting.
否定句I have not been waiting.
疑问句How long have you been waiting?

规则逐条讲

这个主题讲的形式提示要用这个形式的词

  1. How long 提问时,几乎总用这种形式。

    How long have you been learning English?你学英语多久了?

  2. 说数量或结果时,用一般的现在完成时。

    I have read three chapters. — I have been reading all day.我读了三章。——我已经读了一整天了。

  3. 现在看得到的结果,可以作为用进行形式的理由。

    Your eyes are red — have you been crying?你眼睛红红的——你哭过吗?

  4. 状态动词在这里同样不用进行形式。

    I have known her since school.我从上学时就认识她了。

例句

We have been waiting for over an hour.我们已经等了一个多小时了。

She has been working here since April.她从四月起就一直在这里工作。

It has been raining all night.下了一整夜的雨。

They have been arguing again.他们又吵架了。

I have been trying to reach you.我一直在想办法联系你。

再看 5 个例句

I have been waiting for an hour.我已经等了一个小时了。

She has been working here since 2020.她从 2020 年起就一直在这里工作。

It has been raining all day.雨已经下了一整天了。

They have been talking about it for weeks.这件事他们已经讨论好几个星期了。

You look tired — have you been running?你看起来很累——你刚才跑步了吗?

中文母语者最容易踩的坑

注意

中文“我等你等了二十分钟了”里,“等”没有任何变化,而“正在等”的意思又很明显,于是常被译成 I am waiting for you for twenty minutes,或者加上 since:I wait for you since twenty minutes。英语要用现在完成进行时,时长前面用 for:I have been waiting for you for twenty minutes。

错误:I am waiting for you for twenty minutes.
正确:I have been waiting for you for twenty minutes.

详细讲解

阅读全文 · 约 1 分钟

它的形式是 have 或 has been 加动词的 -ing 形式。它强调一个一直持续到现在的过程有多长:这样已经多久了,现在还看得出来吗?

它和一般的现在完成时的区别在于视角。I have written three emails 看的是结果:三封,写完了。I have been writing emails all morning 看的是活动本身:整整一上午,而且累得看得出来。说数量时用一般形式,说花了多少时间时用进行形式。

中文表达这层意思靠时长加“了……了”:“我等了你二十分钟了”。中国学习者常常只译出“正在等”,写成 I am waiting for you for twenty minutes。可是从过去一直延续到现在的过程,英语需要 have been + -ing:I have been waiting for you for twenty minutes。

这个主题你掌握得怎么样?

学习路线下一站:61 · may、might 和 be allowed to返回学习路线

相关主题