如何正确理解 had done、have done、have been doing 这 3 种时态？
谢邀。 完全理解题主的苦衷：不少语法书把本来很简单的东西给你弄得象迷宫似的。在完成时、完成进行时的问题上，绝大多数语法书把它们分得过于琐碎，不把你绕糊涂了决不罢休。 看完我的这一根数轴，保你不会再糊涂了。其实就是 2 种时态 ----- 完成时，完成进行时。根据时间的不同，它们又各自衍生出 3 个时态。但你只要明白了那两个“主杆”时态的道理，剩下的那6个细分的时态就好办了。 完成时：  注意图中3个彩色箭头都是虚线，虚线中的每一截代表一个时间点。 过去完成时： By the time my girlfriend showed up, I had finished my paper. by the time my girlfriend showed up ==> 显然是过去的某个时刻。在这个时刻、或者说时间分割点之前，我已经完成论文了。那究竟是在哪一个准确时间完成的 ----- 是她进门时我刚刚完成，还是在这之前几个小时我就完成了？  这无关紧要，反正是已经做完了。 现在完成时： Yes, I am flying high today, but I have paid my dues. 别光看我今天春风得意，我（时间分割点 = 今天 = 现在 = 0 = present）之前可是付出了代价的。   究竟是什么时候开始付代价的、付了多少时间、今天是不是还在付？ 这你别管，反正（到今天为止）我是付了不少代价的。 将来完成时： By the time you are sipping coffee in a Paris cafe, you will have forgotten all about today's mess. 这句话的时间分割点是几个小时后、或明天或XX天后，到那时你才能到巴黎、坐在巴黎的咖啡馆里喝咖啡。在那个时间分割点之前，你早已把今天的这一摊子烂事抛到九霄云外去了。从现在到“喝咖啡”之间的时间里，你究竟会是在哪一个准确时间点上 ----- 上飞机前、飞行途中、还是进入咖啡馆那一刻----- 会把这些麻烦事忘光？ 那无关紧要 ——  要紧的是在“喝巴黎咖啡”那个时间分割点之前你肯定会忘光这些破事儿的。 综上所述：完成时，关心的是一件事情在某一个时间分割点 之前   做了、或发生了没有，但是却不在乎、也不说明究竟是在哪一个准确的时间点（或时间段）做的或发生的。 好了。“完成时”就这么点儿事儿。你其实都不见得非记住“过去/现在/将来 完成时” 这几个名号，而只要知道根据不同的时间分割点来搭配不同的助动词就行了 ------ 2020/10/1 补充： 有网友问：“我想问一下 have wanted不是完成进行时的结构，但却表达截至目前一直在持续的意思（一直这样想到现在），所以说完成时也有表达持续的含义么”？ 答：I have wanted to ask you this question 当然是现在完成时，也的确有“我 一 直 想问问你”的意思。 它与 have been doing 现在完成进行时的区别是后者更强调“一直在。。。，而且一刻都不曾间断”。“一直 想问问你”，但是事实上这期间你还得吃饭睡觉上课吧？你 want 的这个事情总有间断吧？ 所以一般说 have wanted to。 除非你真的就是某个什么明星的脑残铁粉、没有自己的生活、你的一切24X7都是围着某明星的芝麻绿豆转的，那你问这明星问题时你可能真的是 I have been wanting to ask you ... 了。 完成进行时： 下面的图例几乎与“完成时”的图一模一样，唯一的区别是3个彩色箭头都是实线，以示重点在于“某个时间分割点之前一直在不间断地做、或不停地发生。。。。。。”  过去完成进行时：By the time my girlfriend showed up, I had been working non-stop on this stupid paper for 24 hours! 到女友进门那一刻，我 !@#$%^&* 已经跟这该死的 paper 连续搏斗了整整24小时了！ 现在完成进行时： Yes, I am flying high today, but I have been working like a dog for 25 years!  你只看我今天日子好过，可（到今天）我已经成天累死累活没日没夜干了整整25年了。 将来完成进行时： -- By tomorrow, I will have been staying on this diet for 3 months.到明天我就按这个法子节食整整3个月了，这句话暗含的重点在于：“我发誓：（到明天）这整整3个月来我始终恪守规矩、从未破功”！ 题主问了3个时态。这一根数轴，一杆子扫掉 6 个时态，不算太复杂吧？ 2020/10/1 补充： 有网友问：“我想问一下 have wanted不是完成进行时的结构，但却表达截至目前一直在持续的意思（一直这样想到现在），所以说完成时也有表达持续的含义么”？答： I have wanted to ask you this question 当然是现在完成时，也的确有“我 一 直 想问问你”的意思。 它与 have been doing 现在完成进行时的区别：后者更强调“一直在。。。，而且一刻都不曾间断”。你说“一直 想问问你”，但是事实上这“一直”期间你还得吃饭睡觉上课工作吧？你 want 的这个事情总有间断吧？ 所以一般说 have wanted to。 除非你真的就是个某个什么明星的脑残铁粉、没有自己的生活、你的一切的一切 24小时都是围着某明星的芝麻绿豆破事儿转的，那你问这明星问题时你可能的确是 I have been wanting to ask you ... 了。口语中，有时为了强调“我一直特别迫切地想问问你” 也会用 I have been wanting to ask you this，但这是特例，不是典型的语法正确的时态用法。作为英语学习者，在你做语法题时应该严格按照“到底有没有间断”来定，究竟这两者中该用哪一个，而不要总想着特例。否则很可能选错。