Since用来说明动作起始时间,for用来说明动作延续时间长度。
Ihavelivedhereformorethantwentyyears.
IhavelivedheresinceIwasborn..
Myaunthasworkedinaclinicsince1949.
Somenewoilfieldshavebeenopenedupsince1976.
IhaveknownXiaoLisinceshewasalittlegirl.
MybrotherhasbeenintheYouthLeaguefortwoyears.
Ihavenotheardfrommyuncleforalongtime.
注意:并非有for作为时间状语的句子都用现在完成时。
Iworkedhereformorethantwentyyears.
(我现在已不在这里工作。)
Ihaveworkedhereformanyyears.
(现在我仍在这里工作。)
小窍门: 当现在完成时+一段时间,这一结构中,我们用下面的`公式转化,很容易就能排除非延续动词在完成时中的误使。
1) (对)TomhasstudiedRussianforthreeyears.
=TombegantostudyRussianthreeyearsago,andisstillstudyingitnow.
2) (错)Harryhasgotmarriedforsixyears.
=Harrybegantogetmarriedsixyearsago,andisstillgettingmarriednow.
显然,第二句不对,它应改为Harrygotmarriedsixyearsago. 或Harryhasbeenmarriedforsixyears.