■现在完成进行时的用法
(1) 基本用法:现在完成进行时由“have / has been +现在分词”构成。它主要表示从过去某个时候开始一直延续到现在的动作,强调动作现在依然在进行,并有可能继续延续下去。如:
I’ve been waiting for an hour and he still hasn’t turned up. 我等了1小时了,可他还没来。
I’ m so sorry I’ m late. Have you been waiting long? 真对不起,我迟到了。你等了很久了吗?
现在完成进行时常常用于抱怨。如:
This room stinks. Someone’s been smoking in here. 这间屋子空气不好,有人在这儿抽烟了。
(2) 与现在完成时的比较:在表达一个从过去开始而现在仍在继续或刚刚结束的动作时,某些动词既可以用现在完成时,也可以用现在完成进行时,如expect, hope, learn, lie, live, look, rain, sleep, sit, snow, stand, stay, study, teach, wait, want, work等。如:
你学习英语多久了?
正:How long have yon learnt English?
正:How long have you been learning English?
他已经睡了十个小时了。
正:He has slept for ten hours.
正:He has been sleeping for ten hours.
■过去完成进行时的用法
(1) 基本用法:过去完成进行时由“had been +现在分词构成”,表示从过去某一时间开始一直延续到另外一个过去时间的动作,这个动作在当时仍在进行并可能继续延续下去。如:
I woke up―l had been having a bad dream. 我醒了,我做了个噩梦。
She was very tired. She had been typing letters all day. 她很累了。她整天都在打信件。
Jenny was annoyed. Jim had been phoning her every night for a whole week. 詹妮生气了。整整一星期,吉姆天天晚上都给她打电话。
(2) 与when连用:和过去完成时一样,过去完成进行时亦可后接具有“突然”意义的when从句(此从句用过去一般时)。如:
I had only been reading a few minutes when he came in. 我刚看了几分钟书他就进来了。
(3) 一点说明:凡不能用于进行时的动词均不能有这种时态,但动词want (有时还有wish) 除外。如:
The boy was delighted with his new knife. He had been wanting one for a long time. 男孩对新小刀很高兴。他早就想要一把了。