現(xiàn)在完成進(jìn)行時
表示動作從過去開始一直持續(xù)至今,或剛停止、或要繼續(xù)下去。也可以表示某種經(jīng)歷。
句型:have +been +doing

現(xiàn)在完成時
句型:have/has +過去分詞
現(xiàn)在完成時表示動作發(fā)生在過去,但與現(xiàn)在有關(guān)系,即用一個發(fā)生在過去的動作來說明現(xiàn)在的情況。

比較
現(xiàn)在完成進(jìn)行時 have been doing 強調(diào)的是持續(xù)性的過程,而現(xiàn)在完成時 have done 則側(cè)重于這個動作所造成的結(jié)果和影響。

例句對比
(1)
It has rained for two hours. 雨下了兩小時。(雨下完了)
It has been raining for two hours. 雨已經(jīng)下了兩小時了。(現(xiàn)在還在下)

(2)
The car is going again now. Tom has repaired it. 這車又能開了,湯姆修好了它。(修完了)
Tom’s hands are very dirty. He has been repairing the car. 湯姆的手很臟,他正在修車。(還在修)

(3)
I have been writing a book. 我一直在寫一本書。(還沒寫完)
I have written a book. 我已經(jīng)寫了一本書。(寫完了)

注意
1、有時現(xiàn)在完成時和現(xiàn)在完成進(jìn)行時表達(dá)的意思一致。

例如:
She has worked on painting for six years. 她畫畫畫了6年了。(還會繼續(xù))
She has been working on painting for six years. 她畫畫已經(jīng)畫了6年了。(還會繼續(xù))

2、表示狀態(tài)的動詞不用于現(xiàn)在完成進(jìn)行時。

例如:
I have liked piano for a long time. 我喜歡鋼琴很久了。(喜歡是一種狀態(tài))
I have been liking piano for a long time. (錯句)