英语问题 现在完成时 与 过去完成时

i have climbed that hill many a time when i was young

i had climbed that hill many a time when i was young

请问上面这两句话有什么区别

谢谢
john told me this morning that the painters haven't finished the work on his house yet

请问上面这句话中the painters haven't finished 不是应该用the painters hadn't finished吗?

谢谢

第一句用的是现在完成时
现在完成时表示过去发生的某一动作对现在造成的影响或结果,表示过去已经开始,持续到现在的动作或状态,可以和表示从过去某一时刻延续到现在(包括“现在”在内)的一段时间的状语连用。表示持续动作或状态的动词多是延续性动词。现在完成时可以和already,never,ever,just,before,yet等状语连用;它不能和表示过去的时间状语连用。如:yesterday,last night,three weeks ago,in 1990等。
例如:
I’ve known Li Lei for three years. 我认识李雷已经三年了。(现在我们彼此熟悉。)
--Have you had your lunch yet?—Yes,I have.I’ve just had it.
--你吃过中饭了吗?--是的,我吃过,我刚刚吃过。(现在我不饿了。)
I have seen the film.
我看过这部电影。(我了解这部电影的内容。)
He has lived here since 1992.
1992年以来他一直住在这里。(他现在还住在这里。)
I have read this book this April.我今年四月份看过这本书。(讲话时仍然是四月份)
I have written two letters this morning.今天上午我写了两封信。(讲话时仍然是上午)
She has taught us since I came to this school.
自从我来这个学校她就教我们。(现在她仍然还教我们。)

第二句用的是过去完成时
过去完成时表示过去某一时间或动作之前已经发生或完成了的动作。它表示动作发生的时间是“过去的过去”。表示过去某一时间可用by,before等构成的短语,也可用when,before等引导的从句或者通过上下文表示。例如:
By the end of the match,they had scored two goals and we had scored four.到比赛结束前,他们进了两球,我们进了四球。
We had reached the station before ten o’clock.在十点钟前我们已经到达车站。
When I got there,you had already started playing.当我到那里时,你们已经开始踢足球。
We did as he had told us.我们按照他告诉我们那样做的。
He said he had never seen such an exciting match before.他说他以前从未看过那么激烈的比赛。
By the time we got there,the bus had already gone.当我们到那里时,汽车已经开走了。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-06
第一句中的when改成since才对,表示自从我小时候到现在经常会去爬那座山。
第二句是对的,就是指小时候我经常会去爬那座山(现在已经不爬了)。
现在完成时可以表示从过去到现在这段时间里的事情,而过去完成时可以表示在过去某段时间发生的事情。
相似回答