1. 时间参照点
过去完成时和现在完成时的主要区别在于时间参照点的不同。
过去完成时以过去某个确定的时间点为参照点,表示在这个时间点之前已经完成的动作或状态。
现在完成时以现在为参照点,表示从过去某个时间点(通常不确定)一直持续到现在或刚刚完成的动作或状态。
举个例子,以下两句话都表示“我已经吃了饭”,但它们的含义有所不同:
I had eaten dinner by 7 o'clock last night. (过去完成时)
I have already eaten dinner. (现在完成时)
在第一句话中,by 7 o'clock last night是过去某个确定的时间点,表示我在七点之前已经完成了吃晚饭的动作。在第二句话中,现在是参照点,表示我从过去某个时间点(不确定)一直持续到现在已经完成了吃晚饭的动作,或者我刚刚完成了吃晚饭的动作。
2. 动作的完成情况
过去完成时和现在完成时对动作完成情况的强调也有所不同。
过去完成时侧重于强调动作在过去某个时间点之前已经完成,而不强调动作的结果或影响。
现在完成时除了强调动作在过去某个时间点开始一直持续到现在或刚刚完成之外,还强调动作的结果或影响。
例如,以下两句话都表示“我写完了作业”,但它们的含义有所不同:
I had finished my homework by 10 pm last night. (过去完成时)
I have finished my homework. (现在完成时)
在第一句话中,by 10 pm last night是过去某个确定的时间点,表示我在十点之前已经完成了写作业的动作。这句话只强调了动作的完成时间,而不强调完成作业后发生了什么。
在第二句话中,现在是参照点,表示我从过去某个时间点(不确定)一直持续到现在已经完成了写作业的动作,或者我刚刚完成了写作业的动作。这句话除了强调动作的完成时间之外,还强调完成了写作业后我可以去做其他事情了。
看时间点:过去完成时侧重于过去某个时间点之前发生的事件,而现在完成时则侧重于事件与现在的联系。
看结果:过去完成时通常不关注事件的结果,而现在完成时则通常关注事件对现在的影响。
用词辨析:某些词语只能与过去完成时或现在完成时连用,例如:
since:只能与现在完成时连用 ago:只能与过去完成时连用 just:可以与过去完成时和现在完成时连用,但意思不同。