英语语法 关于If引导的条件状语从句或虚拟语气

问题描述:

英语语法 关于If引导的条件状语从句或虚拟语气
If i were on the spot that day,___________________________.
A.I should be able to prevent the disaster from happening.
B.I would have been able to prevent the disaster from happening
选择那个?标准答案是B.
这里使用的是虚拟语气吗?如果是,那不是应该使用If i had been on the spot that
这是我网上找到的解释,担不是非常理解:
7.条件从句与结果主句所表示的时间不一致
(1) 当条件从句与结果主句所表示的时间不一致(如一个是过去发生的,一个是现在发生的)时,虚拟语气的形式应作相应的调整。如:
If you were in better health,we would have asked you to come.
如果你身体好一些,我们早就请你来了。
If we had consulted him on the question yesterday,we should know what to do now.
假如昨天我们向他请教了这个问题,现在就知道该怎么办了。
You would be much better now if you had taken my advice.假如你接受了我的意见,你现在就会好得多。
(2) 如果条件从句用if I were...,结果主句则可用任何时间的虚拟形式。如:
If I were not busy,I would have come.
假如我不忙,我就会去的。(were表过去)

If i were on the spot that day,I would have been able to prevent the disaster from happening,
这句话地意思是:如果那天是我在当班,我就能够阻止灾难的发生了.
这里用的的确是虚拟语气,虚拟的也是过去的时刻发生的事,但是并不是过去的事情都得用过去完成时来表虚拟,这里用were 并没有错
但是 你如果用完成时也是可以的:If i had been on the spot that day,I would be able to prevent the disaster from happening,这个句子也是对的
这两个都是虚拟的过去,但是并非二者选其一,两个都是对的啊
你举得这个例子:If I were not busy,I would have come.也表过去
如果我不忙(过去的某个时间),我就去了
下面这两个句子应该会对你有启发:
If I were you,I would have taken his advice.我要是你,我就采纳了他的建议.(从句指现在,主句指过去)
If the weather had been more favorable,the crop would be growing still better.如果气候更适宜一些,庄稼会长得更好.(从句指过去,主句指现在)
ps:if I were you ,I would take this answer.