had been doing与have been doing都是过去正在进行时。 只不过前者用在虚拟语气中 而后者用于现实语句中。 比如:what have you doing when I called you yesterday? 回答是:I have been doing my homework. 如果问题是:Have you finished your homework?the teacher is coming for checking. 回答是:I should had been doing my homework when Jake had asked me to play basketball yesterday.
是否有一个明确的时间点作对比,或者此时间点从上下文中可以推测出来。例如:1'I have been cleaning the room all the morning. 2'I had been cleaning the room all the morning when she came. 此处,when she come 就相当于一个时间点。本回答被提问者采纳