have done和have been doing有什么区别? 一、完成时态和完成进行时态本身意义的差别; 二、要结合动词的不同延续特点.首先我们来看两种时态的意义差别 两者根本区别是:完成进行时强调动作持续的过程(emphasis on duration),完成时强调动作的结果或成就(emphasis on achievement).具体来讲,现在完成进行时have been doing强调的是在一段时期内某项活动的持续性,强调的是动作本身.现在完成时have done则是强调动作产生的结果或取得的成就,而不是动作本身.二者的这种区别我们从下面的这些例句可以很好地领悟到: (2) a. My hands are very dirty. I’ve been painting the house. b. I have painted the house green. The house was white, but now it’s green. 思维分析: 句a中have been painting表示painting动作一直在持续,活动还没有结束,所以才有my hands are very dirty这样的现状.句a意思是“我的手很脏,我现在一直在给房间刷漆”. 句b中have painted表示painted动作已经结束,而且动作导致的结果是the house was white, but now it’s green房间现在是绿色的了. 现在完成时表示动作业已完成, 而完成进行时却不一定如此 I’ve made a cake. 我做了一个蛋糕.(已做好) I’ve been making a cake. 我一直在做一个蛋糕. (不一定做好了 She’s painted a picture. 她画了一幅画.(已画好) She’s been painting a picture. 她在画一幅画.(可能还没画好) 强调时间长度用完成进行时比较好: I’ve been coughing all night. 我咳了一整夜.(比I’ve coughed all night. 更能强调咳得久) All the time she’s been sitting there in silence. 她一直静坐在那里. All these years we’ve been trying to get in touch with him. 这些年来我们一直在设法和他联系. 许多静态动词都只能用于完成时而不能用于完成进行时: I’ve known that for a long time. 这事我已经知道很久了. The strike has lasted six months. 这次罢工已经持续了6个月. Nobody has seen him since last week. 从上周起就没人见到过他. raise in salary all the time. 他一直盼着加薪. 但当意思发生转变时也可能用于完成进行时: I’ve been thinking of doing so for a long time. 我好久以来一直想这样做 .Tom has been seeing about a work permit for you. 汤姆一直在设法帮你取得工作许可证. 有少数动词用两种时态都可以,意思差别不大,如: They have been working very well this term. 这学期他们学习很好. They have worked very well this term. It has been raining for two hours. 下了两个小时的雨. It has rained for two hours. 本文来源:https://www.wddqw.com/doc/0330368748649b6648d7c1c708a1284ac950055c.html