如题所述
have\has done 叫现在完成时。表示动作发生在过去,对现在有一定的影响。通常与时间段连用。
had done 是过去完成时。表示动作发生在过去的过去。通常句中有过去时间状语作参照。
have/has been done 是现在完成时的被动语态。表示某事被做,并对现在有影响。
had been done 则是过去的过去,是过去完成的被动态时。