情态动词+have+done一般用来对过去推测,但能否对将来表示推测呢?我见过一些这样的句子,感觉就是对将来表示推测,但语法书上从来没这么说过,现在举几个例子:
1. There will have been a definite result before Friday. 星期五以前肯定会有结果。
2. By the time you get to Beijing tomorrow, I should have left for Shanghai.等你明天到达北京的时候,我很可能已经动身去上海了。
3. He may have left when you get there. 等你到达的时候他可能已经离开了.
4. 2007考研英语text4有这样一句话:The current state affairs may have been encouraged--though not justified--by the lack of legal penalty for data leakage.
星火英语的翻译是:现在的这种情况,可能会由于缺乏对资料泄露的法律制裁而愈演愈烈,虽然这是不正当的。(将 may have done 翻译成了对将来的推测)
5. She said that we would have finished the work by the end of this month. 她说在月底前我们将要完成这个工作。(过去将来完成时)/ 她说在月底前我们可能已经完成这个工作了。(对将来的推测)
陈老师:
你的句子可以分为两类:
▲一类是将来完成时,如你的第一句:
There will have been a definite result before Friday. 星期五以前肯定会有结果。
本句中的 will 不是情态动词,而是助动词,它不是“情态动词+have+done”结构,而是将来完成时,又如:
I expect you will have changed your mind by tomorrow. 我预料到明天你就会改变主意了。
By the end of next week, I will have been a teacher for 25 years. 到下周末,我当老师就有25年了。
As you will have noticed, there are some gaps in the data. 你也许已经注意到了,数据里有些缺漏。
By the time the case comes to trial, he will have spent a year in prison. 到这个案件开庭审理时,他将已经在监狱里呆了一年了。
将来完成时用于表示到将来某一时刻已经完成的动作。例如下面这句:
I will have retired by the year 2020. 到2020年我将已退休。(意思是:在2020年或这之前,我退休已成为过去的事)
▲另一类就是你说的“情态动词+have+done”结构——这类结构与将来完成时的用法相似,但根据所用的情态动词不同,与将来完成时相比,增添了一定的“情态”意义(比如推测)。例句如:
I should have finished reading it by Friday. 我大概到星期五能把它看完。(牛津高阶词典)
She said she might have finished by this afternoon but don’t hold your breath. 她说她有可能在今天下午之前完成,不过你可别眼巴巴等着。(剑桥高级英语词典)
We should have finished by a quarter past two and the bus doesn't leave till half past. 我们2:15之前应该会完成,汽车要到2:30才开。(柯林斯高级英语词典)
关于此类用法,《牛津英语用法指南》作出的相关解释是:
may / might+动词不定式完成式也可以表示现在或将来 (如同现在完成时和将来完成时)。如:
I’ll try phoning him, but he may have gone out by now. 我要给他打电话,但他现在可能出去了。
By the end of this year I might have saved some money. 到今年年底,我就可能积攒了一点儿钱了。