13 现在完成进行时 have/has been + 现在分词
现在完成进行时表示从过去某一时间开始一直持续到现在的动作,并且该动作可能还会继续进行下去。
一、构成
have/has been + 现在分词
1. 当主语是第三人称单数时,用 has been。例如:She has been studying English for three hours.(她已经学习英语三个小时了。)
2. 当主语是其他人称时,用 have been。例如:We have been waiting for the bus for half an hour.(我们已经等公交车半个小时了。)
二、用法
1. 强调动作的持续性。
例如:I have been working on this project all day.(我一整天都在做这个项目。)突出从早上一直到现在都在做这个项目,并且可能还会继续做下去。
They have been living in this city since 2010.(他们从 2010 年起就一直住在这个城市。)表示从过去到现在一直持续的居住状态。
2. 表示动作在近期刚刚结束,但对现在仍有影响。
例如:She is tired because she has been running.(她很累,因为她刚刚一直在跑步。)跑步的动作可能刚刚结束,但导致了现在她很累的结果。
三、时间状语
常与现在完成进行时连用的时间状语有:all day/night/week/month/year(整天/整晚/整周/整月/整年)、for + 时间段、since + 时间点等。
四、句式变化
1. 否定句:在 have/has been 后加 not。
例如:I have not been sleeping well recently.(我最近睡眠一直不好。)
She has not been working overtime for a long time.(她很长时间没有加班了。)
2. 一般疑问句:将 have/has 提到句首。
例如:Have you been studying hard?(你一直在努力学习吗?)
Has he been waiting for long?(他等了很久了吗?)
3. 特殊疑问句:特殊疑问词 + have/has + 主语 + been + 现在分词 + …?
例如:How long have you been reading this book?(你读这本书读了多久了?)
What have they been doing all morning?(他们整个上午一直在做什么?)