B:Yes,I have.吃了。(意即我现在饱了,不要再吃了。)
A:When did you have it 你什么时候吃的?(说话人感兴趣的是\吃\这一动作发生在什么时候。)
B:I had it about half an hour ago.我是大约半小时前吃的。 现在完成时的其他用法
1)还可表示动作发生在过去,并且一直延续到现在,甚至还可能继续延续下去。这时常和since所引导的短语或从句或for引导的短语连用(for有时可以省去)。
How long have you been in Beijing ? -I have been in Beijing for four years.你在北京呆了多久?--我在北京呆了四年。
Isaac's father has been a school teacher since 1968. 艾萨克的父亲从一九六八年以来就当教师。
We haven't had a vacation for a long time.我们好久没放假了。 Three years have passed since we left school.我们毕业已经三年了。 [注]但在下面的句子中,主句的谓语动词可以用现在一般时。如:
It is three years since I began to work on the state farm.我在国营农场工作已经三年了。(美国英语用has been,下例同此)
It's a long time since I saw you last.好久没见了。 2)在条件、时间状语从句中表示将来完成的动作。
I'll go with you when I have finished my home work,我做完作业后就和你一块去。 We'll wait here until you have Written the letter.我们将在这里等你写完信。 Perhaps I'll know more English after I have learnt it for two years.我学完两午后,懂的英语或许就会多些了。
现在完成时的时间状语问题
1)现在完成时说明的是现在的情况,是现在时态,因此不能和表示过去时间的状语如yesterday,1asr month,three years ago,in l960等连用。这些时间状语只能和过去时态连用,表示过去的动作。但现在完成时可和表示过去时间的副词just和before连用。如:
He has just come.他刚到。
We have seen the movie before,我们以前看过这个电影。
2)现在完成时常和表示不确定的时间的副词already,never,ever,always,yet,not...yet,often等连用。如:
Have you ever been in a plane? 你坐过飞机吗? The new books have not arrived yet.新书还没有到。
The Xishalslands have always been Chinese territory.西沙群岛一直是中国的领土。 Have you heard from him yet? 你接到他的信了吗?
They have already finished their experiment.他们已经做完试验了。
Many westerners have never seen a giant panda.许多西方人从没见过大熊猫。 We have often been to the Summer Palace.我们常到颐和园去玩。
3)现在完成时可以和包括\现在\在内的时间状语连用,如now,today,this month,this year等。如:
We have planted many fruit trees this year.我们今年种了很多果树。 Have you seen Benny today? 你今天见到本尼了吗? We've had a lot of rain this summer.今年夏天雨下得很多。
但如说话人所感兴趣的只是在这段时间内发生了某一动作,而不是这一动作与现在的关系时,须用过去时态。如:
The conference opened this month.会议是本月开幕的。
Their farm set up a pumping station this year.他们农场今年新修了一个抽水站。 现在完成时可和疑问副词where,why,how连用,但通常不和疑问副词when连用 (when一般只与过去时态连用)。如:
Where have you been? 你去哪儿了?(询问经过情况。如说Where did you go?则只问地点)
Why have you turned off the radio? 你干吗把收音机关了?(强调和现在的关系,意即收音机关着。如说Why did you turn off the radio?则强调关收音机这一过去的动作。)
过去完成时过去完成时的基本概念和形式
过去完成时(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.我们告诉