現(xiàn)在完成進(jìn)行時(shí)的結(jié)構(gòu):have/has been doing
過去完成進(jìn)行時(shí)的結(jié)構(gòu):had been doing
現(xiàn)在完成進(jìn)行時(shí)的用法1:與一段時(shí)間連用,表示過去的動(dòng)作持續(xù)到現(xiàn)在,并且還將繼續(xù)持續(xù)下去。
例句:It has been snowing for almost 2 days.下了兩天的雪(可能現(xiàn)在還在下)
過去完成進(jìn)行時(shí)的用法1:強(qiáng)調(diào)到過去為止,某一活動(dòng)或動(dòng)作一直在持續(xù),可能仍然持續(xù)下去。
例句:It had been snowing for 2 days when I arrived in Hei Longjiang.
當(dāng)我到黑龍江的時(shí)候,下了兩天的雪了。(可能當(dāng)時(shí)仍然還在下雪)

現(xiàn)在完成進(jìn)行時(shí)用法1

過去完成進(jìn)行時(shí)用法1
現(xiàn)在完成進(jìn)行時(shí)的用法2:表示開始于過去的動(dòng)作持續(xù)到現(xiàn)在為止不再持續(xù),或者剛剛結(jié)束的動(dòng)作。
例句:I am sorry. I am late. Having you been waiting long?
我很抱歉。我來晚了。你等了很久吧?(現(xiàn)在已經(jīng)不再等待了)
過去完成進(jìn)行時(shí)的用法2:強(qiáng)調(diào)過去的某一活動(dòng)或者時(shí)間之前一直在持續(xù)的動(dòng)作到過去的時(shí)間為止,或者在過去時(shí)間剛剛結(jié)束。
例句:When she arrived, I had been waiting for 2 hours.
當(dāng)她到的時(shí)候,我已經(jīng)等了兩個(gè)小時(shí)了。(當(dāng)她到的時(shí)候不再等待了)

現(xiàn)在完成進(jìn)行時(shí)用法2

過去完成進(jìn)行時(shí)用法2
現(xiàn)在完成進(jìn)行時(shí)的用法3:表示重復(fù)發(fā)生的動(dòng)作——就是說話時(shí)間以前一段時(shí)間內(nèi)重復(fù)發(fā)生的動(dòng)作。
例句: I have been getting up early since I entered the No.1 Middle School.
自從我上第一中學(xué)之后,我一直早起。
過去完成進(jìn)行時(shí)的用法3:表示重復(fù)發(fā)生的動(dòng)作——就是表示過去每一活動(dòng)或者時(shí)間之前一段時(shí)間內(nèi)重復(fù)發(fā)生的動(dòng)作。
例句:I had been trying to call her on the phone. Finally she gave me a call.
我一直試圖給她打電話,最后她給我打了電話。

但是注意,重復(fù)的動(dòng)作不能說出具體次數(shù)。
比如:I had been trying six times to call her on the phone.這樣是錯(cuò)誤的。
可以這樣表達(dá):I had tried six times to call her on the phone.
你了解了嗎?