首页 > 英语 > 指南
Present Perfect  现在完成时

现在完成时的基本构成方式是用动词have加上过去分词。它是用来表达过去发生事情的另一种方式。

  He has studied English and French.
 他学习过英语和法语。
  I have read many books.
 我读过很多书。

通常一个动词的过去分词和他的过去式是一样的,但是有一些动词的过去分词有不规则的形式。

be
  been
go
  gone
come

come
run

run
swim
swum
fly

flown
see

seen
speak
  spoken
do
  done
give

given
hide
hidden
become
  become
take

taken
get
  gotten / got
break
  broken
shake
  shaken
wake

waken
awake
  awaken
rise
  risen
lay
lain
fall
  fallen
begin
  begun
know
  known
forget

forgotten
write
  written
choose
chosen
drink
  drunk
eat

eaten
bite
  bitten
show

shown
  She has forgotten her name. She has amnesia.
她已经忘记了自己的名字。她有健忘症。
  I have already drunk the coffee.
 我已经喝过咖啡了。
  They have gone to see the President.
 他们已经去见校长了。
  She has come to see you.
 她来看过你了。

have被用在现在完成时态中时,它可以和前面的代名词一起组成缩写形式。

  I've been to New York once before.
我曾经到过纽约。
  He's gone to the fish market.
他已经去过鱼市了。
  We've come to help.
我们已经提供了帮助。

现在完成时用not来表达否定形式。当有not出现的时候,have可以和not组成缩 写,但是此时不能和前面的代名词组成缩写。

  She hasn't spoken to him.
 她还没和他说过话。
  We've not spoken with her.

提问的时候,have需要被提到句首。

  Have you seen Matthew?
 你见过马休了么?

简单过去时和现在完成时在一定程度上有共同之处,当然事实上两者之间有本质区别。当需要指明过去一个特定的时刻发生的事情时,需要使用简单过去式。

  He finished three days ago.
 他三天前做完了工作。
  They finished a long time ago.
 他们老早就完成工作了。

当没有特定指明的时间,现在完成时和简单过去时都可以使用。

  I have already finished.
 我早就完工了。
  I already finished.
 我早就完工了。

简单过去时比现在完成时更能表达事情的结果。

  John has taught math for twenty years.
 约翰已经教了20年的数学。
  John taught math for twenty years.
 约翰教了20年数学。

在上面的句子中,第一句保留了约翰继续教数学的可能性。第二句表明约翰已经不再教数学了,他可能退休了,换工作了,或者去世了。

  Steve and Carol have eaten at that restaurant twice. They really like it.
 史蒂文和卡洛尔已经在那家饭店吃过两次饭了。他们真的喜欢那里。
  Steve and Carol ate at that restaurant twice.
 史蒂文和卡洛尔两次在那家饭店吃饭。

如果一件事情发生在过去并且延续到说话的这个时刻,就需要使用现在完成时。

  They have lived here for a long time.
 他们在这里已经生活了很长一段时间。
  She has been in Australia for two years.
 她到澳大利亚已经两年了。
  We have studied for 5 hours straight.
 我们已经连续学习了5个小时。
  Tim has waited for 30 minutes.
 蒂姆已经等了30分钟了。

下面的句子包含了“动作在过去发生并且已经结束”的含义。      

  They lived here for a long time.
 他们在这里住了很长一段时间
  Melissa waited for 30 minutes.
 梅丽莎等了30分钟。

通常当句子里有since时我们使用现在完成时。

  We have lived here since June.
 我们从六月份开始就住在这里。
  She has been in China since last month.
 她从上个月起就在中国了。

当现在完成时前有might时,就算主格是第三人称单数形式,我们还是使用have的动词原型形式。

  She might have forgotten to lock the door.
 她可能忘记了关门。
  He might have given the painting to someone.
 他可能已经把画给别人了。

Shouldcouldmust没有简单过去时.他们用现在完成时来表达过去的状态。

  He should have told you earlier.
 他应该早点告诉你的。
  I should have tried harder.
 我应该更努力的。
  She could have been nicer.
 她可以做得更好的。
  You must have seen him.
 你一定已经见过他了。