had done是过去完成时,如果动作发生在相对于过去某一时刻的过去,在过去某时刻已经完成了,就用had done。
have/has done是现在完成时,是相对于现在动作已经完成了,have done主语是第一人称和第二人称和第三人称复数,has done主语是第三人称单数。
过去完成时(The Past Perfect Tense):表示过去某一时间前就已经发生或完成了的动作,对过去的某一点造成的某种影响或是结果,用来指在另一个过去行动之前就已经完成了的事件。
在英语时态中,“时“指动作发生的时间,”态“指动作的样子和状态。 它表示动作发生的时间是“过去的过去”,侧重事情的结果。
现在完成时表示的动作发生在过去,以now的时间为基点,但侧重对now产生的结果或造成的影响;过去完成时则是一个相对的时态,以过去时间为基点,它所表示的动作不仅发生在过去,更强调“过去的过去”,只有和过去某时或某动作相比较时,才用到它。