现在完成
1.概念:过去发生或已经完成的动作对现在造成的影响或结果,或从过去已经开始,持续到现在的动作或状态。
2.时间状语:recently, lately, sincefor,in the past few years, etc.
3.基本结构:have/has + done  4.否定形式:have/has + not +done.
5.一般疑问句:havehas提前
对于初接触现在完成时的人来说,往往会产生一种茫然,因为它似乎与一般过去时相似。那就是,这两种时态描述的动作都始于过去。其实不然,现在完成时主要表示,发生在过去的动作延续到现在刚刚完成、或许还要延续;侧重于这个动作对现在带来的结果、产生的影响、积累的总和等等。而一般过去时则只不过是表示动作发生在过去的什么时候。弄清了这一区别,就很容易理解现在完成时了。它主要适用于下面的几种情况:
  1)表示截止现在业已完成的动作
  By now, I have collected all the data that I need .到现在为止,我已收集到了我所需的全部资料。
  She has read 150 pages today .她今天已看了150页。
  2)表示发生在过去而对现在产生影响、带来结果的动作
  Have you had your dinner? 你吃晚饭了吗?
  3)表示过去发生的动作持续到现在,并可能还要延续
  It has been five years since he joined the army .他参军五年了。
  1)一个句子应该用什么时态只能取决于它需要表达的意思,以及它所处的语言环境。例如:
  He speaks English .(一般现在时,说明动作发生的经常性。)
  He spoke English when he was in New Zealand .(一般过去时,说明动作发生的时间。)
  He is speaking English.(现在进行时,说明动作正在进行。)
  短信测试He has spoken English for three years since he came to the USA.(现在完成时,这里说明动作的总和。)
  He has been speaking English since he came to the USA. (现在完成进行时,强调动作的连续性。)
  2)在含有时间状语从句或条件状语从句的主从复合句中,如果主句的谓语动词是一般将来时,那么从句的谓语动词就只能用一般现在时来表示将来时;如果主句的谓语动词是过去将来时,那么从句的谓语动词就只能用一般过去时来表示过去将来时。
  例如:I will not play tennis if it rains tomorrow.
  相术I would not play tennis if it rained the next day.
  3) 有些动词表示无法持续的动作,它们一般不宜用于进行时态中。这类动词常见的有:be , believe , consist , find , forget , hate , have , hope , hear , know , like , love ,
notice , prefer , remember , see , seem , smell , suggest , taste , understand , want , wish , sit down , stand up 歌棚等等。
Be动词若是用于进行时态,可表示暂时、短暂的情况或表现。例如:
Tom is being a good boy today .汤姆今天很乖。
He is being childish .他这样做是耍孩子气。
  You are not being modest .你这样说不太谦虚。
  4)关于现在完成时的时间状语问题
  A. 凡是"完成时态"都表示,不知道也不管动作发生的具体时间, 所以在使用现在完成时的句子里,不可以带有表示具体过去时间的状语,如:yesterday , last week ( month , year , etc. ) , two weeks ago , in 1999等;但常和有些副词连用,如: just , before , already , often , never , ever , notyet , always等等。
  B. 在以when提问的特殊疑问中不能用现在完成时。另外,ago不能用于现在完成时的句
子里,因为它表示从现在算起的以前某个时间,属于表示具体过去时间的状语。但是可以用before 来表示"以前"的意义,因为它只表示"以前",而不知什么时候的以前。
  C. 如果是不表示连续性的动词用于现在完成时的句子,不可以和以for表示的"一段时间"的状语连用。在这种情况下,应该用"It has been since"的句式来表达。如:
  He has joined the army for five years. (错误)
  It has been five years since he joined the army.(正确)
能与现在完成时连用词语很多,如副词just, already, yet, before, ever, recently 等,但下面是一些典型而且重要的例子:
  (1) since(自从额头大发际线高):不管用作介词、连词还是副词, 句子(主句)谓语通常都用现在完成时:I havent seen her since last week. 自上周以来我一直未见过她。
  Where have you been since I last saw? 自我上次见到你之后你到哪里去了?
  【注】有时可用其他时态的情况,但须注意:
  ① 对于某些表示状态的动词( seem ),或因语义等方面的原因,有时可能用一般现在时比较现在完成时更合适:
  It seems like years since we last met. 我们似乎几年未见面了。
  Since when does the $42 plus $5 service charge come to $48? 从什么什候开始42元加5元的服务费等于48元了?
  若不是指从过去持续到现在,而是指从较远的过去持续到在一个较近的过去,则用过去完成时:
  Yesterday he told me that he hadnt eaten anything since Tuesday. 他昨天告诉我自星期二以来他一直未吃任何东西。(指从星期二至昨天未吃东西)
 
  (2) so far(到目前为止)
   So far there has been no bad news. 到现在为止还没有什么坏消息。
成成烽火  We haven普通话等级t had any trouble so far. 到目前为止,我们还没有遇到任何麻烦。
  (3) in [for, during] the past [last] years(在过去…年中)
  In the past two years Ive seen him little. 过去两年我很少见到他。
  I have been here (for) the last [past] month. 最近一个月里我都在这儿。
  【注】在一定的上下文里,若是以过去时间为起点,也可用过去完成时。
 
 
现在完成时练习
一、单项选择
  1Both  his  parents  look  sad .Maybe they  _________what's  happened  to  him .
  A.  knew  .  have known  .  must know  .will know
  2He  has  _______ been  to  Shanghai , has  he ?
  A.  already  .never    .ever    . still
  3Have  you  met  Mr  Li ______
  A.  just  .  ago    .before  .  a moment ago
  4The famous writer _____ one new book in the past two year
. is  writing    .was  writing    .wrote  .has  written
5-Our country  ______ a lot so far .
   -Yes . I hope it will be even ______ .
  A. has  changed ; well  .  changed ; good
  C. has  changed ; better .  changed ; better
6Zhao Lan ______already  ______in this school for two years .
. was ; studying                  . will ; study
  C. has ; studied                    . are ; studying
  7We ______ Xiao  Li  since  she  was  a  little  girl .
. know  .  had  known  . have  known  .  knew
8Harry Potter is a very nice film .I_______ it twice .