Y: Is he in the room? (It's 9:00 in the morning)
X: Yes, but he's very tired because he's been working hard all day yesterday.
If the present perfect continuous doesn't work here, why would the past perfect continuous work in the first example sentence?
It doesn't. We normally teach that in present perfect sentences (including present perfect continuous ones), you shouldn't state a specific point in past time. In this sentence,
yesterday is a specific point in time, so the sentence is not good. This is another example of what I call a 'mismatch' in reference. There are two quick ways to fix this poor sentence: first, omit
yesterday. Second, change the tense in the subordinate clause from present to past (
has been working to either
was working or
worked).
The question of
why we don't tend to use past time phrases in present perfect sentences is unimportant to learners but if you want to know my answer, I'll try to explain with a sentence pair:
a)
He's very tired because he's been working hard all day yesterday.
b)
He's very tired because he's been working hard all day today.
Why is a) wrong where b) is okay? There must be some 'distraction' or 'interference' from the meaning of the word
yesterday, right? This is what I call a mismatch of reference. The mismatch is in the relation of the time frame in which the working hard happens to the moment of speaking. Why
can't you use a past time phrase where you
can use a present time phrase? That's essentially what I think your question is, Michaell.
And the answer, which I think you've almost worked out, is that in sentence b) the time frame within which the working hard happens directly relates to the time of speaking (let's call it 'now')—another way to say that is that it has 'present relevance—and so does
today whereas in sentence a) the word
yesterday does not relate coherently in that it is one step removed into the past.
(Okay, that just took me nearly an hour to write and edit. I sincerely hope at least one person can understand what I'm talking about!)