I have been doing sth.和I have done sth.有何区别?

麻烦各位帮我解决一下英语问题,谢谢!
2024-12-25 23:54:04
推荐回答(3个)
回答1:

1
区别现在完成时和现在完成进行时

现在完成进行时是一兼有现在完成时和现在进行时二者基本特点的时态。由于它有现在完成时的特点,所以它可以表示某一动作对现在产生的结果或影响。由于它有现在进行时的特点,所以它也可以表示某一动作的延续性、临时性、重复性、生动性乃至感情色彩。
现在就现在完成进行时的这些特点和现在完成时作一简单的比较: (1)现在完成进行时和现在完成时皆可表示动作对现在产生的结果,但前者所表示的结果是直接的,而后者所表示的则是最后的结果。如:
We have heen cleaning the classroom.(a)
We have cleaned the classroom.(b)
(a)句可译为“我们打扫教室来着。”其直接结果可能是:我们身上都是灰。(b)句可以译为“我们把教室打扫过了。”其结果是:现在教室很清洁,可以用了。又,(a)句表示教室刚刚打扫过,(b)句则可能表示教室是昨天打扫的。
Be careful! John has been painting the door.(a)
John has painted the door.(b)
(a)句表示约翰刚刚把门油漆过,现在油漆还未干,所以你要小心。(b)句则无此含义,油漆可能已干了。
(2)现在完成进行时有时有延续性,现在完成时往往没有。如:
They have been widening the road.(a)
They have widened the road.(b)
(a)句的意思是他们在加宽马路,但尚未完工。(b)句的意思则是已完工了。有时现在完成时有延续性(如一些属于持续体的动词),但无临时性质。如:
Mr. Smith has been living in London since 1978.(a)
Mr. Smith has lived in London since 1979.(b)
(a)句有“史密斯先生在伦敦久居”的含义,(b)句则没有。
(3)但现在完成进行时并不总是具有临时的性质,如:
My mother has been teaching English for twenty years.(a)
My mother has taught English for twenty years.(b)
(a)句在此并无临时性质,但较口语化。(b)句则较为正式。又,(a)句表示动作现在仍在继续.并将延续下去,(b)句的动作是否延续下去,须由上下文决定,但在一般情况下都是延续下去的。
(4)现在完成进行时往往表示动作在重复,现在完成时则常常不带重复性。如:
Have you been meeting her lately?(a)
Have you met her lately?(b)
(a)句有“经常相会”之意,(b)句则没有。(b)句如与often,every day等时间状语连用,当然也表示动作在重复。
(5)现在完成进行时比较生动,有时含有明显的感情色彩,而现在完成时往往只说明一个事实,一种影响或结果,平铺直叙,没有什么感情色彩可言。如:
What have you been doing?(a)
What have you done?(b)
(a)句表示惊异。(b)句只是一个问题。
Have you been waiting long?(a)
Have you waited long?(b)
(a)句较(b)句生动。又,(a)句比较口语化。
I have been wanting to meet you for long.(a)
I have long wanted to meet you.(b)
(a)句比(b)句更亲切,更有礼貌。
Recently Mary has been doing her work regularly.(a)
Recently Mary has done her work regularly.(b)
(a)句显然是在表扬玛丽。(b)只说明一个事实。
下面还有一例,颇为有趣:
Who’s been eating my apples?(a)
Who’s eaten my apples?(b)
(a)句有强烈的感情色彩,表示愤怒不满,(b)句只是希望回答的一个问题。又,(a)句兼有进行时态,所以有“苹果未被全部吃光”的意思,(b)句是完成时态,说明“苹果一个不剩了”。
(6)在否定结构中,现在完成时所否定的是谓语动词,现在完成进行时所否定的是状语。如:
He hasn’t been speaking since three o’clock.(a)
He hasn’t spoken since three o’clock.(b)
(a)句中所否定的不是has been speaking,而是 since three o’clock,其结构等于 He has been speaking not since three o’clock but since half past three.这是因为现在完成进行时本身是没有否定结构的原故。(b)句用的是现在完成时,而现在完成时是有否定结构的,所以(b)句中所否定的自然是has spoken,意即“从三点起他一直沉默不语,未发一言”。

回答2:

前者表示一直在做,但是没有做完
后者表示已经完成

回答3:

i
have
been
doing
sth:意思是我从以前就开始做一直做到现在都没有停。现在完成进行时
例如:我一直在长高。
我从小到大一直在长在现在也在长。这时候就要用这个。
i
have
been
growing
up
i
have
done
sth:我已经做完某事了。现在完成时
强调事情已经全部完成了。
我做完了作业。
i
have
finished
my
homework