Now I m working in Beijing.I (worked) in Shanghai for 8 years
Now I m working in Beijing.I (worked) in Shanghai for 8 years
为什么用过去式而不是过去完成时?
没有明显的时间对比,无须用过去完成时.过去时就可以,表述一个事实.可是有for加时间段啊I (worked) in Shanghai for 8 years 我曾经上海工作了8年。这只是讲述一个过去的事实,我现在已经不在上海工作了。 状语(for + 时间)只是表达一段时间,无须和完成时态挂钩,更不是和完成时态形成什么“固定结构”过去时可以表达(1)过去的一个动作,也可以表达(2)过去一段时期重复或持续的动作情况(2)就可以加上(for + 时间)的状语:I stayed in the hotel for two whole weeks.同样的,未来时态也可以这么用:They will stay in the hotel for three days.We are staying in a hotel for a few days. (未来计划/安排)其他如情态句子也可以加上同一状语:You can stay here for a week.完成时态因为表达的是一段时间内持续的动作,和(for + 时间)状语正好意气相投,所以常见到他们两者出双入对:We have stayed here for two weeks.但这并不表示状语(for+时间)就非得专一不可。人会脚踏两条船,完成时态又何尝不会,完成时态除了表达(1)一段时间内持续的动作,也可以表达(2)过去一个完成的动作,情况(2)就不能加上(for+时间)的状语:错误:He has bought the car for two years.正确:He has had the car for two years. The car has belonged to him for two years.我的理解是这样的,看看可不可以帮得上忙。He did not talk to his mother for many years. 他有许多年没有跟他妈妈谈话。He has not talked to his mother for many years. 他有许多年没有跟他妈妈谈话(一直到现在也没有)He has not been talking to his mother for many years. 他有许多年没有跟他妈妈谈话(一直到现在也没有,而且仍然会这样)所以关键不在 for(many)years,而是在于你想表达的意思,然后选择用什么时态。