先完善你的句子:
The workers claimed they HAD been promised that they__B__between US1000 and US1200 per month,but they got much less
B是正确的答案,因为在被promise的时候,钱还没有到手,所以是过去将来时。D不能用。
我又想了一下,如果用D,表示本可以有但是却没有,句子的意思,逻辑就不对了。句子不可能翻译成,有人向工人们承诺他们本可以拿到1000到1200。只肯能是有人向工人们承诺他们会拿到1000到1200。所以B逻辑和语法都说的通了
D would have done 表示虚拟语气,它的含义是“本来能但没有”
B 过去将来时