请问这一题为什么用might have been

问题描述:

请问这一题为什么用might have been
he said he might repair my watch this afternoon,so it_________if I go in on my way home early this evening.
答案写的是might have been repaired为什么不能是might be repaided呢?
另外请问这句话的翻译,谢谢!

这个要弄明白情态动词后面接do 与have done的区别了,情态动词和动词不定式to后面接do表示现在或者将来要发生的事,而情态动词和to后面接have done表示过去时态或者事情已经发生(因为我们都知道情态动词后面要接动词原形,所以不可能用一般过去式的形式did放在后面的)
所以原句的意思是“如果我今天晚上回家早点的话它很可能已经被修好了”,表示在某一时刻动作已经完成要用have done的形式
再如,He must have finished the task.他一定已经完成任务了(表示动作已经过去)
He must finish the task on time.他一定要按时完成任务(表示一种对现在或将来的要求)