have been doing have done 的用法和区别
have been doing have done 的用法和区别
have been doing是现在完成进行时.
have done是现在完成时.
现在完成时的用法
①表示结果的现在完成时
现在完成时着眼于过去的动作对现在产生的结果或影响.这是现在完成时的“已完成”用法,表示动作或过程发生在说话之前就已完成,并与现在有联系.这种联系实际上就是“过去的动作”对现在的影响或产生的结果.
I have bought a pen.
我买了一支笔.(结果:I have a pen now.)
The temperature has increased by 10℃.
温度上升了10摄氏度.(结果:It is quite hot now.)
Air pollution has taken the lives of many people.
空气污染已经夺去了很多人的生命.(结果:Air pollution is very serious now.)
注意:
现在完成时的上下文所指的时态必须呼应.
②表示经历的现在完成时
强调过去某一时刻到说话时这段时间中的经历.
Have you ever been to the Great Wall?
你去过长城吗?
I have visited Beijing at least ten times.
北京我至少访问过十次了.
③表示延续的现在完成时
这是现在完成时的“未完成”用法,表示一个动作或状态从过去某时开始,持续到现在,可能要继续下去.
He's loved fishing for a long time.
他爱好钓鱼为时已久.(他现在仍爱好钓鱼)
注意:
现在完成时的“未完成”用法既可用于动态动词(主要是持续动词),也可用于状态动词,但它一般不适用于表示短暂动作或位置转移的动词,如:open,break,go,come,arrive,leave等.如用这类动词表示“未完成”,通常只限于否定结构.
I haven't seen a film for weeks.
我已经好几个星期没看电影了.
现在完成进行时的用法
①表示动作从过去某时开始,一直延续到现在
现在完成进行时常和all this time,this week,this month,all night,all the morning,recently等状语以及since和for引导的状语连用.
I have been reading Hemingway's Farewell to Arms recently.
我最近一直在读海明威的《永别了,武器》.
She has been reciting the words all the morning.
她整个上午都在背单词.
This is what I have been expecting since my childhood.
这是我从小以来就一直期待着的事情.
②表示动作刚刚结束
My clothes are all wet.I've been working in the rain.
我的衣服全湿了,我刚才一直在雨中干活.
③表示一个近期内时断时续、重复发生的动作
You've been saying that for five years.
这话你已经说了五年了.
④表达较重的感情色彩
What have you been doing to my dictionary?
看你把我的字典弄成什么样子了!
现在完成进行时和现在完成时的比较
①现在完成进行时可以表示动作的重复,而现在完成时一般不表示重复性.
Have you been meeting him recently?
你最近常和他见面吗?
Have you met him recently?
你最近见到过他吗?
②现在完成进行时有时含有感情色彩,而现在完成时一般是平铺直叙.
I have been waiting for you for two hours.
我一直等了你两个小时.(可能表示不满)
I have waited for you for two hours.
我等了你两个小时.(说明一个事实)
③现在完成进行时强调动作,而现在完成时强调结果.
Who has been eating the oranges?
谁一直在吃这些桔子呀?(还剩余一些)