if there had not been a hard layer of rock beneath the soil,they would have completed the job in a hours.这句话我有2处不懂.

问题描述:

if there had not been a hard layer of rock beneath the soil,they would have completed the job in a hours.这句话我有2处不懂.
1.if there had not been这里的had是作“有”的意思吗 had not 是否定形式“没有”的意思?如果这样的那后面为什么要加been呢?直接if there had not a hard layer of rock beneath the soil这样不就可以了吗?
2.they would have completed the job in a hours,这句话我没能理解,应该怎么划分呢?这里的have什么意思呢?是什么用法?

这是虚拟语气的用法,if 引导的句子有真实条件句和非真实条件句,非真实条件句就是虚拟语气!1 与现在事实相反 if + 主语+过去式,主句中:主语+ would/could/might/should + V (原形)2 与过去事实相反if + 主语+过去完...if引导的句子是没有现在时态和现在完成时态,只有过去式和过去完成时态是吗? 还有与将来事实相反 这个例子我看不太懂 你能帮我举个英语例子吗? 非常感谢与现在事实相反 : If I were you , I would take his advice. 如果我是你,我就会采用他的建议。 与过去事实相反 :If you had taken my advice , youwould nothave failedinthe exam. 如果你听了我的建议,你就会考试就能及格了。 与将来事实相反 :If you came tomorrow, we would have the meeting.如果你明天来我们就开会。 If it were to rain tomorrow, the sports meeting would be put off. 如果明天下雨,运动会将会被延期。If he should not come tomorrow ,we should put off the meeting till mext Monday. 如果他明天不来,我们将把会议延至下周一。 注意!虚拟句中,be 动词常用were,过去式不用was