would have done和 should have done的区别是什么

如题所述

1.should/ought to have done的含义.“should/ought to have+过去分词”表示“过去应该做谋事却没有做”; “should not/ought not to have+过去分词”表示“作了不应该做的事”.含有责备或遗憾的意思.例如:
You shouldn’t /oughtn’t to have come here alone at such a late hour.你这么晚的时候本不一该一个人来这里的.(实际是一个人来的)
She should/ought to have gone there alone.她本该一个人去那里的.(实际上不是) 
2.would have done的含义.would have done“本愿意做某事”,非虚拟语气时,就是would 情态动词加动词原形,
have done 就是现在完成时,所以和起来 就是将来完成时的用法
过去将来完成时表示在过去看来将来某时会已经完成的动作.例如:
She said she’d have finished her exams by then.她说那时她会已经考完试了.
He knew he arrived she would have gone home.他知道他到时她会已经回家了
3.must have done的含义.“must have+过去分词”表示对过去的推测,意思是“一定已经,想必已经,准是已经….”,只用于肯定句中.例如:
He must have been drinking beer.他肯定一直喝啤酒来着.
若要表示否定,要用“can’t/couldn’t+ have+过去分词”,意思是“不可能”:
The money can’t have been lost there.钱不可能是在那儿丢的.
should have done“本应该做某事”
might have done“可能做过某事”
could have done“本可以做到某事”
would have done“本愿意做某事”
都是表示与过去事实相反.if条件句中的虚拟基本含义相同,只是要注意主从句时态一致
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-11-25
would/should + have + 过去分词 这是虚拟语气的一种用法。

would have done :表示对过去事情的假设,意思是“本来会做”。
比如:
I would have told you all about the boy's story, but you didn't ask me. 我本来会告诉你这个小男孩的故事,但是你没有问我。

should have done: 表示对过去事情的假设,意思是本来能够做某事而没有做。含有指责对方或自责的含意。
比如:
Tom, you are too lazy. The work should have been finished yesterday. 汤姆,你太懒惰了,这项工作本来应该昨天就做完的。本回答被提问者采纳
第2个回答  2016-11-25
would/should + have + 过去分词 这是虚拟语气的一种用法.
would have done :表示对过去事情的假设,意思是“本来会做”.

should have done:表示对过去事情的假设,意思是本来能够做某事而没有做.含有指责对方或自责的含意.
第3个回答  2016-11-25
should have done 强调的是本应该做什么却没有做,而would have done 则没有这层意思
第4个回答  2016-11-25
would have done 过去打算做,但没做
should have done 过去本来要做,但没做