can have done

can have

done
通常只用于否定句和疑問句。用于否定句時表否定推斷,推測肯定沒做;用于疑問句時意為“難道真的做了嗎”,表示懷疑。例如:

Can he have done such a foolish thing? (= Is it possible …?)
他會做這樣的傻事嗎?(表懷疑)

He can't have taken it home.
他不可能把它帶回家了。(表不可能)

could have done

could have done 可用于肯定句、疑問句和否定句。用于肯定句既可以表示過去能夠做而實際未做,有惋惜、遺憾或委婉批評之意,也可以表示對過去動作的推測;用于否定句和疑問句的情況與can have done相同。例如:

You could have done better, but you didn't try your best.
你本可以做得更好,但是你沒有盡力而為。(表惋惜)

This glass is cracked. Someone could have dropped it.
這個玻璃杯破了??赡苁钦l把它掉在地上了。(表推測過去)

Could he have left the work unfinished?
他會丟下工作不干了?(表懷疑)

He couldn't have checked out so early.
他不可能這么早就離開了。(表不可能)

注意:can't have done 的語氣比 couldn't have done 要強一些。例如:

He can't have been to that town.
他根本不可能去過那座城市。(語氣略強)

The measurement couldn't have been wrong.
測量不可能出錯了吧。(語氣稍弱)