这实际上是现在完成时和过去时的区别。
他们最主要的区别是在语境上的。
过去完成时,强调过的事情已经完成并且对现在造成影响,You have done this. 你已经完成了,言下之意是现在不用做了或是怎么样的。
一般过去时,只是过去做了,做的怎么样,对现在有什么样的影响完全不考虑,You did it.你做了,没什么深层次的含义。
现在完成时和过去时的区别:
1.概念不同:
(1)对于过去已经发生而且结束的动作:一般过去时强调何时何地做了何事,并不说明跟现在的关系;而现在完成时强调对现在产生的结果或影响。如 I bought a ticket yesterday. (强调我昨天做的一件事是买票) / I have already bought a ticket. (强调我已经有票了,无须再惦记票的事儿了)
(2)对于过去发生的,一直持续到现在的动作,只能用现在完成时。因为一般过去时只能描述已经结束的动作。如 I have lived here for ten years. (我已住这儿十年了,今后还可能住下去,一般过去时表达不了这层意思)
2.结构不同:一般过去时的肯定句用的是动词的过去式,一般过去时的疑问或否定句借助于助动词did;现在完成时的肯定句用的是动词的完成式,现在完成时的疑问或否定句借助于助动词have / has。
3.时间状语不同:一般过去时常与明确表示过去的时间状语连用。如 yesterday, 2 days ago等。现在完成时不能与明确表示过去的时间状语连用,只能与already, yet, ever等连用。
同时,现在完成时也不与疑问词when连用。
温馨提示:答案为网友推荐,仅供参考