何时用现在完成时,何时用一般过去式?

2024-12-16 17:12:01
推荐回答(1个)
回答1:

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.