FOR’ AND ‘SINCE’ for 和since
现在完成时可以表达某件事“在不久之前已经开始了,并且现在还在继续”,因此它经常伴
随着表示持续时间的词for 或
since。For用于时间的长度,而表示这个时间开始的时间点即想说“……以来:则用since.
例如:
I have been waiting for 20 minutes.
I have been waiting since 9:30.
We have been playing for three hours.
We have been playing since one o’clock.
He has been learning English for five years.
He has been learning English since 1998.
CONTRACTED FORMS 缩略形式
在口语中我们一般使用缩略形式。现在完成进行时的缩略形式和现在完成时一样。
肯定句:
have→'ve has →'s
否定句:
have not→haven’t has→hasn’t
例如:
I have been waiting for 20 minutes. →I’ve been waiting for 20 minutes.
He has been reading all morning. →He’s been reading all morning.
THE PRESENT PERFECT CONTINUOUS: 现在完成进行时: 疑问句
现在完成进行时的疑问句是通过调换肯定句的主语和have/has 的位置来实现的:
How long has he been waiting?他等了多久了?
Have you been working here for a long time? 你在这儿工作很久了吗?
和其他的时态相同,即使主语再长语序也是不变的:
Where have George and Emily been staying?乔治和艾米丽住厅哪儿?
What has the man with the broken arm been doing?胳膊受伤的那个男人一直在做什么?
它和其他的时态相同,也可以有否定疑问句:
Hasn’t your wife been taking singing lessons?你妻子一直没上过声乐课吗?
Haven’t the Smiths been learning to ski? 史密斯一家没有学过滑雪吗?
PRESENT PERFECT SIPMLE & CONTINUOUS 现在完成和现在完成进行时
现在完成进行时表达的是已经开始而现在还在继续进行的某件事情。一般在使用现在完成时
的场合不太使用它。
比如说,在下面的例子中我们可以使用现在完成进行时:
I have been smoking for ten years.我吸烟已经有10年了。
这个句子表壳的是下面的意思:
I started smoking ten years ago and I am still smoking. 我10年前开始吸烟现在还在吸。
但是,在下面情况下我们就必须使用现在完成时:
I have smoked 20 cigarettes today.今天我已经吸了20支烟了。
下面的说法不成立:
I have been smoking 20 cigarettes today. (x)
因为我们不能像下面这样说:
I started smoking 20 cigarettes six hours ago and I’m still smoking 20 cigarettes.(x)
我们可以像下面这样说:
I have been typing letters all day.我一整天都在打信函。
或者:
I have typede 40letters today.今天我打了40封信。
但是下面的说法不成立:
I have been typing 40letters today.(x)
像work或live这样的动词本身就意味着习惯(使用在下面这样报场合),因此,这种动词
可以用现在完成时也可以用现在完成进行时来表示:
否定句的缩略形式
否定句的缩写形式是've/s not been。如:You've not been trying 或者It’s not been
raining.但是我们一般不这样用。
I have been working here since 1996. 我从1996年到现在一直在这儿工作。
=I have worked here since 1996. 我自1996年以来就在这儿工作。
She has been living here for ten years.她一直住在这儿,已经有10年了。
=she has lived here for ten years. 她住在这儿有10年时间。
be 动词很少用于现在完成进行时,它更多的是用睛现在完成时:
I have been here since two o’clock.我从2点开始就在这儿。
She has been a nurse fro five years.她做护士已经有5年了。
表示‘拥有“的意思的时候,have也不用于现在完成时进行时而是在完成时中使用:
I have had this car since 1998. 自1998年以来我就有了这辆车。