说明
future perfect tense
核心问题
By the time you arrive in London, we ____ in Europe for two weeks.
A. shall stay B. have stayed C. will have stayed D. have been staying 答案为(C)。但这里为什么要用将来完成时,我一直搞不清楚:从句用一般现在时,而主句却用将来完成时。
词典解答
使用将来完成时通常有两个条件:A. 用短语或从句来提供一个将来的时间点或时间点之前;B. 主句的动作是在这个将来的时间点之前完成的。在上句中,by the time 从句表示一个将来的时间点之前。要注意:在时间状语从句中通常是用一般现在时来表示将来时间的[参见 before(conj.) ]:
-
If you go on at the present rate, you will have used up all the petroleum by the end of the month. 如果继续以目前的速率来使用石油,那么,到月末石油就会用光。
-
I hope her health will have improved greatly by the time we come back next year. 我希望等明年我们回去的时候,她的健康状况会大有好转。