原文:对过去情况进行推测,情态动词+have done; 对现在的事件进行推测:
He must/will/would/should/could/may/might/can't have left yesterday.
那是因为will have done即可以表示说话人对过去发生的事件进行推测,也可以表示将来某个时间之前发生的动作(此时为将来完成时)。将来完成时也可以认为是对将来事件的推测,只不过推测的是在将来某个时间之前发生,而不是在那个将来时间发生。例如:
When you come back at 5 pm, I will have finished repairing your watch. 这个句子就可以理解为说话人预测在5点以前表能修好。
由于将来完成时的用法在时态部分已经论述,所以一般语法书在讨论情态动词的推测性用法时,很少再涉及对将来的推测,而主要涉及对过去和现在的推测。
将来完成时表示一个事件在将来某个时间之前已经发生并结束了,通常有一个时间状语提示这个将来时间。你就是根据这个将来时间状语来辨认将来完成时的。
当will have done表示对过去的推测时,句子一定不会出现将来时间状语。相反可能会有过去的时间状语,或者语境提示过去。
你所说的原文是在讨论情态动词的推测性用法,以及对过去情况推测时的动词形式,你却和将来完成时要往一块扯,问题出在你自己身上。
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!