第2个回答 2011-03-24
使用现在完成时的场合:
1.表示过去发生的动作,已经完成,强调对现在产生的结果或影响。常与already, yet, just, ever, before等时间状语连用。如 I have already had dinner. / They have just arrived.
2.表示过去发生的动作,一直持续到现在。常与since, for等时间状语连用。如 He has worked in this factory since he left school. / She has learned English for five years.
3.现在完成时还可以用于when, after, before, until, as soon as等引导的时间状语从句,表示经常或习惯性动作。从句用现在完成时,主句用一般现在时,强调从句的动作先于主句发生。如 When he has finished his letters, he usually takes them to the post himself. / They often play chess after they have had supper.
区别:一般过去时与现在完成时:
1.概念不同:
○1对于过去已经发生而且结束的动作:一般过去时强调何时何地做了何事,并不说明跟现在的关系;而现在完成时强调对现在产生的结果或影响。如 I bought a ticket yesterday. (强调我昨天做的一件事是买票) / I have already bought a ticket. (强调我已经有票了,无须再惦记票的事儿了)
○2对于过去发生的,一直持续到现在的动作,只能用现在完成时。因为一般过去时只能描述已经结束的动作。如 I have lived here for ten years. (我已住这儿十年了,今后还可能住下去,一般过去时表达不了这层意思)
2.结构不同:一般过去时的肯定句用的是动词的过去式,一般过去时的疑问或否定句借助于助动词did;现在完成时的肯定句用的是动词的完成式,现在完成时的疑问或否定句借助于助动词have / has。
3.时间状语不同:一般过去时常与明确表示过去的时间状语连用。如 yesterday, 2 days ago等。现在完成时不能与明确表示过去的时间状语连用,只能与already, yet, ever等连用。
同时,现在完成时也不与疑问词when连用。
所以,我认为你举的第一个例子,两种用法都对。用完成时更强调(我已意识到了)
第二个例子,已经有结果和影响了(找不到了),只能用完成时