同为完成进行时,过去将来完成进行时、现在完成进行时和将来完成进行时非常相似。不过归根结底,只要弄清楚了时间点,就很好分辨了。

过去将来完成进行时
表示动作从过去某时间开始一直延续到对于过去来说的将来的某一个时间。
基本形式:should/would + have + been + doing

现在完成进行时
基本形式:have/has + been + doing
表示过去某时间点开始的动作或状况一直持续到现在(可能继续或就此停止)

将来完成进行时
基本形式:shall/will + have + been + doing
表示某种状况一直持续到说话人所提及的时间。

例句对比:

(1)杰克工作。
Jack said that he would have been working hard by the end of the year.
Jack has been working hard.
Jack will have been working hard by the end of the year.

(2)演出持续了3个月。
By then the play would have been running for three months.
The play has been running for three months.
By then the play will have been running for three months.

(3)她将受到治疗。
The doctor said that she would have been having treatment all her life.
She has been having treatment all day.
She will have been having treatment all her life.

(4)他生活在这里有10年了。
By the end of the month he would have been living here for ten years.
He has been living here for ten years.
By the end of the month he will have been living here for ten years.

(5)杰克会感觉很棒。
Her mother said that Jack would have been feeling very well.
Jack has been feeling very well recently.
Jack will have been feeling well.

从例子我们可以看出三者的主要区别为过去对未来的看法、现在的状态和未来的事情。