現在完成進行時的結構:have/has been doing
過去完成進行時的結構:had been doing
現在完成進行時的用法1:與一段時間連用,表示過去的動作持續到現在,并且還將繼續持續下去。
例句:It has been snowing for almost 2 days.下了兩天的雪(可能現在還在下)
過去完成進行時的用法1:強調到過去為止,某一活動或動作一直在持續,可能仍然持續下去。
例句:It had been snowing for 2 days when I arrived in Hei Longjiang.
當我到黑龍江的時候,下了兩天的雪了。(可能當時仍然還在下雪)

現在完成進行時用法1

過去完成進行時用法1
現在完成進行時的用法2:表示開始于過去的動作持續到現在為止不再持續,或者剛剛結束的動作。
例句:I am sorry. I am late. Having you been waiting long?
我很抱歉。我來晚了。你等了很久吧?(現在已經不再等待了)
過去完成進行時的用法2:強調過去的某一活動或者時間之前一直在持續的動作到過去的時間為止,或者在過去時間剛剛結束。
例句:When she arrived, I had been waiting for 2 hours.
當她到的時候,我已經等了兩個小時了。(當她到的時候不再等待了)

現在完成進行時用法2

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

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