《合同法》规定,因不可抗力不能履行合同的,根据不可抗力的影响,部分或者全部免除责任,但法律另有规定的除外。当事人迟延履行后发生不可抗力的,不能免除责任。为不可抗力发生的时间不是在合同约定的施工期内,而是乙方违约后发生的,因此因不可抗力导致工期拖延的时间仍然是属于乙方工期的延误。因此拖期违约损失应该是5月31日减去5月10日,D正确。
看清楚注释,“当事人延迟履行后发生不可抗力的,不能免除责任”不是你所说的不能全部免除。