✔ 最佳答案
你說得對,這兩種的時式會很容易混淆,因為它們均可來表示一些事情,從過去某時繼續到現在。
但它們的比較,在牛津出版的【A practical English Grammar】裏面有探討過:
192 簡單現在完成式與現在完成進行式的比較
A. 在表達一個在過去開始而現在仍在繼續或剛剛結束的行動,某些動詞既可以用簡單現在完成式,也可以用現在完成進行式。可以這樣用的動詞有:expect, hope, learn, lie, live, look, rain, sleep, sit, snow, stand, stay, study, teach, wait, want, work等等:
如:How long have you learnt English?你學英語多久了?
How long have you been learning English?你學英語多久了?
注意,現在完成進行式可以和時間短語連用,也可以不和時間短語連用,這樣就有別於簡單現在完成式,因為後者只能與for six days, since June, never等一些時間短語連用才能表示這類行動。當不用這些時間狀語等,簡單現在完成時指的是完成了的單一行動。
B. 用簡單現在完成時表示的重複的行動,有時可以作為連續的行動,用現在完成進行式來表示:
I've written six letters since breakfast.早飯後我已寫了六封信。
I've been writing letters since breakfast.早飯後我一直寫信。
I have knocked five times. I don't think anyone's in.我敲了五次門。我想裏面沒有人。
I have been knocking. I don't think anybody's in.我一直在敲門。我想裏面沒有人。
注意,現在完成進行時表示一種看來似乎是不間斷的行動,所以在提做一件事的次數或一共做了多少件事時,不能用現在完成進行式。
C.一個用簡單現在完成式表達的單一行動和一個用現在完成進行時表達的行動是有區別的:
a) I've polished the car.我擦了車(這句意指這件事已結束了)
b)I've been polishing the car.我在擦車來著(這句意指”過去一小時我就是這樣度過的”,而不一定指行動已結束)
注意,由現在完成進行式表示單一行動時,這一行動繼續到說話的時間或者接近這時間為止。
He's been taking photos.他一直在拍照片(他大概手裏還拿著相機)
He has taken photos.他拍過照片。(這也許是最近的事,也許不是)
由此可見,he has worked here for five years 和
he has been working here for five years都正確,但has been working就有強調意味。
希望幫到你!
2008-06-04 14:20:20 補充:
若現在不在這裏做,你大可以說:
He worked here for five years.