牛津实用英语语法 184用于表示时间尚未指明或不确定的过去发生的
A它可以表示未说明最近何时发生的动作:
I have read the instructions but I don’t understand them.
我已经看了说明,但没看懂。
—Have you had breakfast?
—No,I haven’t had it yet.
—你吃过早饭了没有?
—没有,我还没吃呢。
和下面的例句相比:
I read the instructions last night.
我昨天晚上看了说明。(指明时间,因此等于有了具体时间,所以要用一般过去时。)
Did you have breakfast at the hotel?
He hasn’t come yet.
他还没有来。(所以我们一直在等他。)
C现在完成时也可用来表示在更早一点的过去发生的动作,它和现在的时间的联系仍然保持着,即该动作有可能现在仍在重复:
I have seen wolves in that forest.
我在那片森林里见过狼。
意指还可能在那森林里见到狼。
John Smith has written a number of short stories.
约翰·史密斯已经写了许多短篇小说。
意指他仍活着并可能写更多的小说。
如果第一句中的狼已被杀,第二句中的约翰·史密斯已死了,就会说:
I saw wolves in that forest once/several times.
我在那片森林里曾经/几次看到过狼。
I used to see wolves here.
我过去常在这里看到狼。
John Smith wrote a number of short stories.
约翰·史密斯写过许多短篇小说。
还要注意,这样用现在完成时时,并不一定想着某一具体动作(该动作可能已发生若干次)或者想着该动作完成的确切的时间。如果想到的是在某一具体时间完成的某一具体的动作,很可能要用一般过去时。