语法问题还是我来答吧。
关于「一般过去时」和「现在完成时」的区别,首先要纠正大家的两个误区:
误区1:「一般过去时」发生在比较远的「过去」,「现在完成时」发生在比较近的「过去」
其实「一般过去时」和「现在完成时」都是描述发生在过去的动作,至于这个「过去」距离现在到底有多远多近,则是不确定的。即使是在同一个句子中同时使用了这两种时态,也不能说「现在完成时」就一定比「一般过去时」更近,一个反例足矣:The universe has cooled down since the Big Bang 13.7 billion years ago, but life appeared on Earth rather recently, some 3.8 billion years ago. 宇宙尺度,大爆炸在前,生命出现在后。
误区2:「现在完成时」描述的是完成的动作
因为有「完成」两个字在,所以大家就觉得「现在完成时」描述的动作一定是完成了的。其实不然,一个反例足矣:He's lived in Shanghai since 1960. 这句话的含义是他从1960年开始在上海居住,至于live这个动作是否完成,也就是他现在是否已经搬走,则是不得而知的。可能他已经搬走了,那么live这个动作算是完成了;但也有可能他还住在这里,那么live这个动作则没有完成。
反过来讲,「一般过去时」所描述的动作也可以是完成了的。比如:He turned off the light. 关灯这个动作很明显已经完成了。其实一般来说可以这样讲:瞬时动作,一般都是完成了的,比如He turned off the light. 和 He's turned off the light. 都是完成了的动作;而持续动作是否完成,则往往是不得而知的,要根据上下文来判断,比如He lived in Shanghai. 和 He's lived in Shanghai. 都是不知道他是否已经搬走了的。所以,笼统地可以说:「一般过去时」和「现在完成时」的区别根本不在于动作是否完成。
那么「一般过去时」和「现在完成时」的区别到底是什么呢?正解是:区别在于是否对现在有影响,或者准确地说:区别在于说话者是否强调对现在的影响。客观地说,一个过去发生的动作,不论使用「一般过去时」还是「现在完成时」,都可能对现在有影响,但是选用「一般过去时」还是「现在完成时」却是说话者主观的选择。所谓是否强调就是纯粹主观的事情,而且强调往往是要暗示一些别的意义,这就是「有影响」的真正内涵。所以「一般过去时」是一般描述,「现在完成时」是强调影响。
试比较:
总之,「一般过去时」和「现在完成时」描述的都是过去发生的某动作,区别在于说话者主观上是否强调这个动作对现在的影响。所以一般情况下就用「一般过去时」,要想强调这种影响才用「现在完成时」。同理,「过去完成时」则是发生在过去的过去的动作,强调对过去有影响。
下面这张表取自我的《英语语法体系》,参考:
怎样学好英语语法? - Ernest 的回答。表中的时间都是动作发生的时间,所以「一般过去时」(编号2)和「现在完成时」(编号7)都在「过去」一列。
顺便贴一下「一般过去时」的各种用法:
Hitler’s army invaded Russia in 1941.
Shanghai was a small fishing village.
I got up at six every day in high school.
相关回答:
怎样学好英语语法? - Ernest 的回答 怎样浅显易懂地解释英语各种从句的逻辑? - Ernest 的回答