现在完成时的其他用法
1)还可表示动作发生在过去,并且一直延续到现在,甚至还可能继续延续下去。这时常和since所引导的短语或从句或for引导的短语连用(for有时可以省去)。
How long have you been in Beijing ? -I have been in Beijing for four years.你在北京呆了多久?--我在北京呆了四年。
Isaac's father has been a school teacher since 1968. 艾萨克的父亲从一九六八年以来就当教师。
We haven't had a vacation for a long time.我们好久没放假了。
Three years have passed since we left school.我们毕业已经三年了。
[注]但在下面的句子中,主句的谓语动词可以用现在一般时。如:
It is three years since I began to work on the state farm.我在国营农场工作已经三年了。(美国英语用has been,下例同此)
It's a long time since I saw you last.好久没见了。
2)在条件、时间状语从句中表示将来完成的动作。
I'll go with you when I have finished my home work,我做完作业后就和你一块去。
We'll wait here until you have Written the letter.我们将在这里等你写完信。
Perhaps I'll know more English after I have learnt it for two years.我学完两午后,懂的英语或许就会多些了。