虚拟语气中,什么时候用would have done,would do

He was very busy yesterday,otherwise he would come to the party.
He was very busy yesterday,otherwise he would have come to the party.
一道英语题,答案唯一。怎么分析那个正确?
再帮我我举几个例子吧。

would have done是对过去的虚拟,would do是对现在或将来的虚拟

第二句正确,“come to the party”是过去发生的事,句子对过去虚拟,所以用would have done

顺带说一句,这句句子是混合虚拟语气。如果是正常的虚拟语气句,主句的时态是用过去完成时,但是主句中有明显的时间词yesterday,所以就用了一般过去时。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-08-05
第二个句子正确。
would do只是表示过去应该做某事。
would have done表示应该去做但是结果没有做,里面暗含后悔、遗憾之意。
例:
because of the bad weather,he would have arrived here yeaterday.
由于坏天气,要不昨天他就该到了。
his mother asked him to visit his sick granny, otherwise he would have finished the report.
他的妈妈要求他去探望生病的奶奶,否则他已经完成那篇报告了。

希望你能理解。
第2个回答  2009-08-05
都不对
应该是He had been very busy yesterday otherwise he would have come to the party.
这句是对过去的虚拟所以主句要用过去完成时had+done,从句用过去将来完成时would+have+done
对现在的虚拟主句要用一般过去时did,从句用过去将来时would+do,如
If I were you,I would......(be动词在虚拟语气中只能用were,不能用was)
第3个回答  2009-08-05
would have done 是和过去相反
第4个回答  2009-08-05
第二个对

虚拟语气:与现在事实相反的,从句用过去时,主句用would+do

与过去事实相反的,主句用would have done
第5个回答  2009-08-05
第二句正确。
相似回答