1)must + have done:用于肯定句,表示推測,意為“一定(已經(jīng))……”。
You must have finished the work. 你一定已經(jīng)完成工作了。
2)can + have done:用于否定句或疑問句,表示推測,意為“可能(已經(jīng))……”。
He can’t have left so soon. 他不可能走得這么早。
3)could + have done:可用于肯定句、否定句或疑問句,表示推測、責備或遺憾等,意為“可能……”、“本來可以……”、“本來應該……”等。
You could have finished it, but you failed. 你本可以完成,但你失敗了。
4)should [ought to] + have done:可用于肯定句、否定句或疑問句,表示責備或遺憾等,意為“本來應該……”。
You should have helped me, but you just sat and watched there.
你本應該幫我的,但你只是在那坐著看。
5)need + have done:用于否定句或疑問句,用于否定時意為“本來不必”,用于疑問句時意為“有必要……嗎”。
You needn’t have helped me because I could make it.
你本沒必要幫我的,我自己可以做到。
6)may + have done:用于肯定句或否定句,表示推測,意為“可能(已經(jīng))……”。
She may have seen this film. 她可能已經(jīng)看過這部電影了。
7)might + have done:用于肯定句或否定句,表示推測,意為“可能(已經(jīng))……(此時might可換為 may);
She may/ might have seen this film. 她可能已經(jīng)看過這部電影了。
另外還可以表示過去可能發(fā)生的事結果未發(fā)生,意為“本來會……”(此時 might不能換為 may)。
Tom might have given you more help, even though he was busy.
盡管湯姆很忙,他或許也會多給你一些幫助。