完成时态has和had的用法

问题描述:

完成时态has和had的用法
什么时候用has什么时候用had

去完成时过去完成时的基本概念和形式
过去完成时(past perfect tense)表示在过去某一时间或动作以前已经完成了的动作.简言之,过去完成时所表示的时间就是“过去的过去”.过去完成时由助动词had + 过去分词构成.
过去完成时的用法
1)过去完成时表示在过去某一时间或动作以前业已完成的动作.这个过去的时间可以用by,before等介词短语或一个时间状语从句来表示.如:
By the end of last week we had learned ten lessons.到上周末为止,我们已经学了十课书.
He had learned some English before he came to the institute.他来学院之前学过一些英语.
I didn’t go to the film because I had seen it twice.我没去看电影,因为这片子我已看过两次了.
When I had gone over my lessons I took a rest.我复习完功课之后,休息了一会儿.
I gave my little sister the flowers that I had bought for her.我把给妹妹买的花送给她.
In the exhibition he saw many oil paintings that he had never seen before.他在展览厅里见到许多过去从未见过的油画.
2)过去完成时可以表示由过去某一时间开始,一直延续到过去另一时间的动作,常和for(有时可以省去)或since构成的短语或since引导的从句连用.如:
It rained yesterday after it had been dry for many months.在天旱了好几个月之后,昨天下雨了.
By the I read his new book, I had known him for a long time.到我读他的新书时,我早就知道他了.
He said that great Changes had taken place in his hometown since,1980. 他说7980年以来他的家乡大变样了.
[注]当一个由when,before,after,as soon as等连词引导的从句所表示的动作和主句的动作紧接时,两个动作均可用“一般过去时”来表示.如:
We had breakfast after we did morning exercises.做完早操后,我们吃早饭.
When I finished supper,I took a walk.我晚饭后就去散步.
The train started to move just before he reached the platform.他到月台时火车刚开走.
They started ploughing as soon as they got to the fields.他们一到地里就开始耕地.
将来完成时的基本概念和形式
将来完成时(future perfect tense)表示在将来某一时间之前所完成的动作.它的形式由shall(第一人称)或will(第二、三人称)加have再加过去分词所构成.美国英语一律用will.
将来完成时的用法
将来完成时表示在将来某一时间以前已经完成的动作.如:
By the end of this week, I shall have finished the book.到本周末,我将读完这本书.
By this time tomorrow they will have repaired the machine.明天这时候,他们将修好这台机器.
The children will have gone to sleep by the time We get home.到我们回家时,孩子们将已睡了.
When you come tonight at eight o'clock,I shall have written my paper.你今晚八点钟来时,我将会写完文章了.
By next year our teacher will have taught English for twenty years.到明年我们的老师将已教二十年英语了.

[英语语法手册]完成进行时态
过去将来完成时
过去将来完成时(past future perfect tense)表示在过去将来某一时间以前已经完成的动作.它的形式由should(第一人称)或Would(第二、三人称)加have再加过去分词构成.美国英语一律用Would.
用法举例:
He said he would have paid me back the money by the end of the week.他说将在周末前还我钱.
We told him that we should have returned to the camp by four o'clock.我们告诉他我们将于四点前回营地.
I hoped she would have finished the work before I got back.我希望她在我回来之前做完那活儿.
种类
完成进行时有现在完成进行时、过去完成进行时、将来完成进行时和过去将来完成进行时四种.
现在完成进行时的用法
1)表示动作从过去某一时间开始一直延续到现在.现在这个动作可能已经终止,也可能仍然在进行着.如:
I have been waiting for you for two hours.我等了你两个小刊(动作不再延续下去)
It has been raining for three hours.雨已经下了三小时了.(动作可能延续)
He has been working on the paper all day.他整天都在写论文(动作是否延续下去,由上下文决定.)
How long have you been learning English? ——I have been learning English for two years.你英语学多久了?——我们学了两年了.(动作可能延续)
Why are you so dirty - I've been playing football.你身上怎么这样脏?——我刚才踢足球了.(动作不再延续下去)
2)有些不能用现在进行时态的动词,如be,have like,love,know,see,hesr等,同样也不能用现在完成进行时,而只能用现在完成时.如:
She has been ill for a long time.她已经病了好久了.
I have not seen you for ages.我好久没有见到你了.
现在完成进行时和现在完成时的比较
1)现在完成时所表示的动作,到现在为止已经完成;现在完成进行时往往表示动作仍然继续下去.如:
I have been reading Lu Xun this week.本周我一直在读鲁迅的著作.(我仍然在读.)
I have read A Madman is Diary this week.我本周读了《狂人日记》.(我本周开始读而且已经读完它了.)
I have read The story of Ah Q before.我以前读过《阿Q正传》.(过去经历)
2)现在完成时强调动作的最后结果;现在完成进行时则强调动作的直接结果.如:
Now we have cleaned the room,we can move the things in.房间已打扫过了,我们可以把东西搬进去了.(强调最终结果)You look so tired. What have you been doing? 你看来很累的样子,你干什么来着?(强调直接结果)
过去完成进行时(past perfect continuous tense)
1)过去完成进行时的形式一律为had been + 现在分词,无人称和数的区别.
2)过去完成进行时的用法 过去完成进行时表示动作在过去某一时间之前开始并延续到过去这个时间,这一动作可能还在进行,也可能已经停止.如:
He told me that he had been waiting for me for two hours.他对我说他等了我两小时.(动作不再延续)
The baby had been crying for fifteen minutes when her mother came in.妈妈进来时,婴儿一直哭了十五分钟.(动作可能还在进行)
It seemed to her that the boys had been shouting for a long time.她似乎觉得这些男孩一直叫喊了很久.(动作可能还在进行)
The teacher had been teaching for forty years by the time he retired,这位教师退休前一直教了四十年的书.(动作不再进行