怎样区分过去完成进行时和现在完成时

3个回答

  • 现在完成进行时(The present perfect progressive) 由have/has been +-ing分词构成;过去完成进行时(The past perfect progressive tenses)由had been +-ing分词构成.

    现在/过去完成进行时的用法:

    A.在某段时间内一直进行的动作

    用现在完成进行时来强调动作在某段时间里的持续性.动作通常有”现在”的结果,要根据上下文来确定到”现在”为止,动作是否还在继续进行.例如:

    She's been typing letters all day.

    I've been sitting in the garden for an hour.

    We've been living here for ten years.

    Who's been eating my dinner?

    同样,过去完成进行时表示在过去更早的时间内进行的动作,并对过去某一时刻产生结果.例如:

    When I first met Ann, she had been working for Exxon for 7 years.

    When she arrived I had been waiting for three hours.

    I realized that I'd been overworking, so I decided to take a couple of days' holiday.

    It had been raining for 3 hours before I shut the window.

    "持续性动词"可用一般时形式,也可用进行时形式,唯一的区别是进行时更强调动作的持续性.例如:

    We've been living here for ten years.

    We've lived here for ten years.

    She'd been working for Exxon for 7 years.

    She had worked for Exxon for 7 years.

    I had been waiting for three hours.

    I had waited for three hours.

    B.表示重复动作的现在/过去完成进行时

    我们可以用完成进行时形式来表示现在或过去经常重复的动作.例如:

    Jim has been phoning Jenny every night for the last week.