The present perfect continuous tense is used to talk about an action that started in the past, has continued up to the present and is still continuing.
Structure: Subject + has/have + been + -ing form of the verb + object/complement/adverbials etc.
Alice has been reading a novel for two hours.
Susie has been knitting a sweater for her mother.
Scientists have been working on the human genome project for several years.
The Americans have been spending billions of dollars on space research.
We have been waiting for him since morning.
It has been raining since yesterday.
The anxious mother has been waiting for a phone call from her daughter in the US.
We have been trying to find a solution to this vexed problem.
The question form in this tense will be as follows:
Has Alice been reading a novel for two hours?
Have scientists been working on the human genome project for several years?
Has it been raining since yesterday?
The negative form in this tense will be as follows:
Alice has not been reading a novel for two hours.
It has not been raining since yesterday.
The present perfect continuous tense shows an action that started in the past and has been continuing ever since. Therefore, the only point of time that can be mentioned in such a sentence is the time at which the action started.
He has been working here since 2002.
I have been waiting for a bus since 8 o’clock.
It is also possible to mention the period of time during which the action has been going on.
He has been working here for 7 years.
I have been waiting for a bus for two hours.
But it is wrong to say:
We have been working all yesterday. (Here the action took place in the place and present perfect continuous tense cannot be used to talk about past actions.)
It has been raining during the whole of last week. (Wrong)
Instead you must say:
We worked all yesterday.
It rained during the whole of last week.
Present perfect continuous and simple past
Note how the meaning changes when the present perfect continuous tense is replaced by a simple past tense.
We have been working since yesterday. (= We started the work yesterday and we are still working.)
We worked all yesterday. (= We have stopped working.)
It has been raining since yesterday. (= It is still raining.)
It rained all yesterday. (= It has stopped raining.)