完成时
另一种主要的状态是完成式。相对于一般时用括弧形状来表达时间,完成时则是以(箭头形状→)来表达时间,表示(动作的截止时间)。从功能上来看,一般时是交代动作发生的时段,而完成时并不对动作发生的时段作明确的交代,只表示“曾经”、“做过”的意思。请看看下面的例句。
一、现在时间
I'm sure I have seen this face somewhere. (我肯定曾经见过这张脸。)
主要从句 I'm sure 的动词 am 表示是现在时间,除此之外,没有时间副词交代是什么时候“看到”这张脸的,只知道一定有见过。也就是说,“看到”的动作没有明确括出来是哪一个时段发生的,只有一个箭头的形状,表示截止时间是现在。在这一刻以前看到过都算数,以后才要去看则不算数。这就是现在完成时的条件,所以用 have seen(看过)。
We have been working overtime for a week to fill your order. (我们连续加班一个星期赶出你订的货。)
把 be动词当做动词看,那么再复杂的动词时态也只剩下两种变化,不是一般时就是完成时。这里用完成时,因为时间副词 for a week 是“到现在,算算有一个星期之久了”,这时候重点在于“算 到现在已经有……了”,所以强调的是截止时间,是箭头形状的时间,要用完成时“已经”来配合,所以动词用 have been。后面的补语 working 是现在分词,表示持续性,也就是“一直在加班”,用来形容主语“我们”。动词 have been 是 be动词,不必翻译,只要解释完成时的部分“已经”和时间副词“有一个星期”就可以了。
The house has been redecorated twice since they moved in. (打从他们搬来算起,这栋房子已经被装修过两次了。)
这个句子的时间副词 since they moved in (打从他们搬来算起)虽然是表示开始计算的时间,可是语气的重点是“算到现在是多久”,所以仍然用完成时 has been。补语部分 redecorated 是过去分词,要加上被动的解释,成为“被装修”,来形容主语“房子”。
二、过去时间
如果没有特别交代的话,一般说“有…过”就是“到现在有…过”,所以都是现在完成时。用过去完成式时则要有一个过去的截止时间,也就是箭头指在一个过去时间,在那之前就 “有…过”。
Many soldiers had died from pneumonia before the discovecry of penicilin. (发现盘尼西林以前,已经有很多士兵死于肺炎。)
盘尼西林在 1928 年发现,可是这个句子的时间副词不是 in 1928 一个括弧,而是 before the discovery of penicillin,也就是 before 1928,是一个以 1928 年为截止时间的箭头形状,所以要用过去完成时 had died。换句话说,这个句子说到的士兵从古罗马时代,一直到一次大战都可以算在里面,但 1928 年之后的就不算了,因为盘尼西林已经发现了。这就是过去完成时的条件。
I had been smoking three packs of cigarettes a day before I decided to quit. (我决定戒烟之前,每天要抽三包烟。)
decided 是过去时间,而时间副词 before I decided 是“在我决定之前”,所以不是括弧而是箭头,以 decided 为截止时间。这就得用过去完成时 had been。补语 smoking three packs 是一个形容词短语,-ing 表示持续性,也就是每天都要抽三包烟,而且是“一直如此”,用来形容主语“我”。
Japan had not been defeated yet by the time Germany surrendered unconditionally. (到德国无条件投降为止,日本尚未被打败。)
这个句子的时间副词是“算到德国投降为止”,所以是一个到过去时间截止的箭头。这就是过去完成时。动词 had not been 表示“尚未”,就是“已经”的相反。be动词仍不必翻译。补语部分 defeated 是过去分词,表示被动的形容词,“被打败”用来形容主语“日本”。
三、未来时间
未来时间的完成时,只是把箭头所指的截止时间移到未来的一个点。观念上与现在、过去时间的完成时完全一样。在写法上,因为是未来时间,所以动词前面加一个 will 就可以了。请看例句。
Next April, I will have worked here for 20 years. (到四月,我在这里就工作20年了。)
年”来修饰动词,所以要用完成时。动词前面加上 will,表示到现在还没有,要到四月才“会”做满 20 年,也就是将来完成时。
Come back at 5:00.Your car will have been fixed by then. (五点再来吧!到时候你的车一定已经修好了。)
你去修车厂拿车子,老板叫你五点再来。他的意思不是五点才要修你的车,而是说五点以前就一定先修好了,等你来拿。真正修好的时间可能是四点,也可能是三点也说不一定,反正不超过五点。这就是完成时的箭头形状时间;截止时间在未来,所以用将来完成时 will have been。be动词没有意义,只要翻译时态“会已经”,来连接主语“车子”和补语“被修好”(fixed)。
In two more minutes,she will have been talking on the phone for three hours! (再过两分钟,她就一直打了足足三小时的电话了!)
这位小姐也真能讲话。动词是 be动词,连接主语 she 和补语 talking,“她一直讲”,-ing 的字尾表示持续性,当形容词看。“再过两分钟”是未来的一个截止点,算到那时候就有三小时了(for three hours),所以是完成时的箭头型时间,要用将来完成时的动词 will have been,“会已经”(有三小时)。再和主语“她”与补语“一直打”连在一起,意思就清楚了。
Last updated
Was this helpful?