+0
Hello,

Which is more correct?

She has been living here all her life/for two years.
She has lived here all her life/for two years.

The sun has been shining for a hour.
The sun has shone for an hour.

It has been raining for an hour.
It has rained for an hour.

She has been learning French for two years.
She has learnt French for two years.

Thanks
Comments  
Hello Nina_Nia,

She has been living here all her life/for two years. (She's still alive, and she'll go on living here)
She has lived here all her life/for two years. (It's 2 years. I don't know if she will go on living here for the rest of her life)

I can't say which one of each rest pair is more correct, because I don't know the contexts. But I can show you the difference.
Ex: She has been learning French for two years. -She's going to continue her studying in the future.
She has learnt French for two years. -This may mean she's learning French still or she may not. Present perfect indicates a past action, a completed past action related to the present.
*The others sentences are similar.
The following sentences may help to differentiate:
-Where are the cakes??
-This cat has eaten them. (There aren't any)
-This cat has been eating them. (Here are some left)

It's my opinions, you'd better ask for more Emotion: smile
GN