can have done 和could have done 的区别can have done是表示应该做某事而没有做,所以既然知道没有做,那肯定是已经发生了,就是过去时啊,但是could have done也是过去时.why?
can have done 和could have done 的区别
can have done是表示应该做某事而没有做,所以既然知道没有做,那肯定是已经发生了,就是过去时啊,但是could have done也是过去时.why?
(1)could have done 表示本来会/可以......
【例句】All of this could have been prevented.这一切本来都是可以避免的。
(2)would have done 表示本来将......
【例句】Without him,none of this would have been done.要是没有他,这一切都不会发生。
(3)should have done 表示本应该......
【例句】I should have been more careful.我当初应该更小心才是。
这三个短语都是虚拟语气,在口语中非常常用。
(在表示虚假的、与事实相反的或难以实现的情况时用虚拟语气, 虚拟语气
表示主观愿望或某种强烈情感时,也用虚拟语气。即当一个人说话时欲强调其所说的话是基于自己的主观想法,愿望,假想,猜测,怀疑或建议,而不是根据客观实际,就用虚拟语气。)
can't have done表不可能(表推测,不相信)
【例句】No, no, he can't have done that. No, no, this couldn't be true.
不,不,他不可能干过那件事。不,不,这不可能是事实。(不相信)
can have done可能(表推测)
【例句】He can have done his homework.
(说话者猜测)他可能已经做完了功课。
你好。很容易理解。
从时间概念来看,can指的是“到目前为止”,而could这的是“到过去某一时刻为止”
比如说:
1 John can't have been to China yet, I think. -------这里的can是到“现在为止”。
2 She says that she could have finished her work last week had she got your help.------这里的could指的是到last week为止。
could have done 表示本能做而实际未做,是虚拟语气.
can have done 和could have done 还能表示对过去的推测,常用于否定句和问句中.
因为也是could可能做了某事,那时态就应该是过去了,而且could本来就是can的过去式
希望对你有帮助哦~