选B.
虚拟语气题.if引导的条件句,用的是过去完成,而主句是could have done的结构,明显的是虚拟语气与过去事实相反的情况,表示的是过去发生的事.那天一整天都在下雨,所以选B.rained.