have been doing have done 的用法和区别
1个回答

have been doing是现在完成进行时.或表示一种状态!如我在这住10年了

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?

谁一直在吃这些桔子呀?(还剩余一些)