have done是现在完成时态(过去发生的动作对现在造成的影响),在英语时态中,“时”指动作发生的时间,“态”指动作的样子和状态。
have done什么时态
have done表示现在完成时,现在完成时( The Present Perfect Tense)是过去的动作或状态持续到现在,对现在造成的影响,可能持续发生下去。例句:
Any reasonable person would have done exactly as you did.
任何有头脑的人都会完全照你那样去做的。
You shouldn't have done it without consulting me.
你不该不和我商量就做了这件事。
He was so desperate for a job he would have done anything.
他当时太想找份工作了,什么事都愿意干。
现在完成时的概念及用法
概念:过去发生或已经完成的动作对现在造成的影响或结果,或从过去已经开始,持续到现在的动作或状态。
本结构:主语+have/has+动词的过去分词(p.p)(V-ed) e.g done。
肯定句:主语+have/has+动词的过去分词(p.p)(V-ed)+宾语。
否定句:主语+have/has+not+动词的过去分词(p.p)(V-ed)+宾语。
一般疑问句:Have/Has+主语+动词的过去分词(p.p)(V-ed)+宾语。
特殊疑问句:特殊疑问词或词组+一般疑问句(have/has+主语+过去分词(V-ed)+其他)例句:
I've written an article.
我写了一篇文章
It has rained these days.
这几天一直在下雨。
现在完成时和一般过去时的区别
①现在完成时强调的是与现在的关系,如对现在产生的结果或影响等,属于现在时范围,谈论的是现在的情况。而一般过去时只表示动作在过去某一时刻发生,不表示和现在的关系,现在情况可能已发生变化。例句:
Who opened the door?
“谁开的门?”(只强调过去开门这一动作,门现在可能已关上。)
Who has opened the door?
“谁把门开了?”(强调门现在依然还开着。)
②现在完成时不能与明确的过去时间状语连用,如:three days ago, last year, yesterday, last Sunday, in 2008等等。如句中有以上这些明确的过去时间状语,应用一般过去时。再有,过去发生的一个动作,如现在情况已经发生的变化,也应用一般过去时。
特别提醒:如果这些过去时间状语前有since,表示“自过去某一时间一直延续到现在”,应用现在完成时。例句:
He finished reading the book the day before yesterday.
他前天读完了这本书。
I put my ruler in my pencil-box, but I can’t find it now.
我把尺子放到文具盒里了,但是我现在找不它了。
③现在完成时不与when引导的特殊疑问句连用,when后只用一般过去时表示已发生的动作。但现在完成时可与where, why等疑问词连用。例句:
Where have you been?
你去过哪里了?
④since引导的时间状语从句后面用一般过去时,只有前面的主句才用现在完成时。例句:
We have known each other since we came to the school two years ago.
自从两年前来学校,我们就互相认识了。
⑤有些时间状语,如this morning, this month, tonight等,既可以与一般过去时连用,又可以与现在完成时连用,但内涵不同。与一般过去时连用时,表示与“现在”无关,时间已成为过去。而与现在完成时连用,则表示包括“现在”在内。例句:
I saw him this morning.
(时间已不在上午了。)
I have seen him this morning.
(说话时间还是上午。)