这两个结构都是现在完成时,have been done为被动语态,have done为主动语态。现在完成时表示过去发生的动作或状态对现在的影响或产生的结果,跨在两个时间之上,一是过去,二是现脊或告在。The train for Kaohsiung has already arrived.前往高团哪雄的火车已经到了。I have just read through Tolstoy's War and Peace.我刚看完托尔斯泰的《战争与和平》。Have you found my digital camera yet? No, I haven’t found it yet.你找到我的数码相机了吗?不,我还没找到。现在完成时可以表示一个从过去某个时间开始,持续到现在,并可能延续下去的动作,常同表示包括现在时间在内的一段时间状语连用,如:I have learned English for one score years.我学英语学了二十年。I have learned English since one score years ago.我学英语学了二十年。I haven’t seen you for a long time.好久不见。It has been a long time since I saw you last.好久不见。I have had a headache all day long.我头痛了一整天。How long has he played the piano? For two hours.他弹钢琴弹多久了?两小时。瞬间动樱明词的现在完成时,不能同表示一段时间的状语连用,如:His father has been dead for ten years.他的父亲故世十年了。His father died ten years ago.(不能说,His father has died for ten years.)他的父亲十年前故世的。Amy has bought the car already.埃米已经买了车子了。Amy has had the car for one year.埃米车子已经买了一年了。He has been in New England for three days.他去新英格兰三天了。He has gone to New England.他已经去新英格兰了。He changed his mind last Friday.他上周五就改变了主意。They have begun to study a new lesson since yesterday. (错误,应该是:Theyhave studied a new lesson since yesterday.)从昨天开始他们就在学习新课文了。He has gotten to like her since last month. (错误,应该是:He has liked her since last month.)他从上周就喜欢上了她。瞬间动词的否定结构可以用在现在完成时里,表示状态的持续。Never has he touched beer for a whole week.他整整一个星期没沾啤酒了。I haven’t bought anything for a year.我一年没买任何东西。
标签:done,been,区别