现在完成时和一般过去时的区别
1. 现在完成时和一般过去时都表示在过去完成的动作, 但现在完成时强调这一动作与现在的关系, 如对现在产生的结果、影响等,而一般过去时则表示动作发生在过去,一般不表示和现在的关系。试比较:
① Who has opened the door?谁把门开了?(现在门还开着)
Who opened the door? 谁开的门? (指过去,与现在无关。现在门是关着还是开着,没有说明。)
② — Have you had your lunch?你吃过午饭没有? (意即你现在不饿吗?)
— Yes, I have. 吃了。(意即我现在饱了,不要再吃了。)
— When did you have it? 你什么时候吃的? (说话人感兴趣的是“吃”这一动作发生在什么时候。)
2. 一般过去时常与具体的时间状语连用,而现在完成时通常与模糊的时间状语连用,或无时间状语。
一般过去时的时间状语:
yesterday, once, last week, ... ago, in
1980, in October, just now等具体的时间状语。
现在完成时的时间状语:
for, since, so far, ever, never, just, yet,
till/ until, up to now, in past/last years, always等不确定的时间状语。
共同的时间状语:
this morning, tonight, this April, now, ever, before, already, recently, lately等。
3. 现在完成时表示持续到现在的动作或状态,动词一般是延续性的, 如 live, teach, learn, work, study, know等。
过去时常用的非延续性动词有come, go, leave, start, die, finish, become, get married等。 eg.
① I saw this film yesterday.(强调看的动作发生过了。)
I have seen this film. (强调对现在的影响,电影的内容已经知道了。)
② He has been in the League for three years. (在团内的状态可延续)
He has been a League member for three years. (是团员的状态可持续)
He joined the League three years ago. (三年前入团,joined为短暂行为。)
句子中如有一般过去时的时间状语(如yesterday, last week, in 1960)时,不能使用现在完成时,要用过去时。
(错) Tom has written a letter to his parents last night.
(对) Tom wrote a letter to his parents last night
温馨提示:内容为网友见解,仅供参考