今天看到一本语法书(英语语法新思维)基础版2上说在肯定句中短暂性动词的完成时态不能与表示一段时间的状语连用,I have heard from my girlfriend since I came to America. I have bought this pair of shoes for two years. 但在之前的回答,http://ask.yygrammar.com/app_q-36225.html 老师说在since引导的时间状语从句中可以用动态动词表示在这段时间内不确定的点发生的动作。请我这里是不是矛盾了?
关键的问题在于你对时间状语的理解。如果你以为since引导时间从句都是持续时间状语,那你就错了。since引导的时间从句既可以是持续时间状语,也可以是时间位置状语。以下摘引自 The Cambridge Grammar of the English Language P.709页。
Since phrase can express location or duration.
1 I've moved house since you left. ( temporal location)
2 I've been here since 4 o'clock. (duration)
3 He's been ill again since then. (ambiguous)
你的句子:He’s put on a lot of weight since he gave up smoking. 中,since从句并不是持续时间状语,而是时间位置状语。所以这个句子并没有错误。你误以为since从句只能引导持续时间状语,这导致了你的疑惑。
for持续时间状语可以表示一个结果状态的持续时间。前提是这个结果状态是事先计划或打算的,主语必须是人。例如:
She has gone to USA for 2 months.
这句话并非表示她去美国已经二个月了,而是表示她已经去美国了,打算在那里呆二个月。即她去美国后的状态——在美国的持续时间,事先计划为二个月。有人将这种for状语理解为目的状语,也未尝不可。
短暂动词本身没有持续期,自然不可能用持续时间状语表示动作的持续时间,因为这不符合逻辑。所以,你的这个句子:Our sales have decreased for the last two years.是错误的。
所以,书上说的没错,关键是我们要能够区分since引导持续状语,还是时间位置状语。for状语表示动作的持续时间,还是表示目的(即结果状态的持续)。
如果觉得我的回答对您有用,请随意打赏。你的支持将鼓励我继续创作!