A. 凡是"完成時(shí)態(tài)"都表示,不知道也不管動(dòng)作發(fā)生的具體時(shí)間, 所以在使用現(xiàn)在完成時(shí)的句子里,不可以帶有表示具體過去時(shí)間的狀語, ? 如:yesterday , last week ( month , year , etc. ) , two weeks ago , in 1999等;
但常和有些副詞連用,如: just , before , already , often , never , ever , not…yet , always等等。
B. 在以when提問的特殊疑問中不能用現(xiàn)在完成時(shí)。另外,ago不能用于現(xiàn)在完成時(shí)的句子里,因?yàn)樗硎緩默F(xiàn)在算起的以前某個(gè)時(shí)間,屬于表示具體過去時(shí)間的狀語。但是可以用before 來表示"以前"的意義,因?yàn)樗槐硎?以前",而不知什么時(shí)候的以前。
C. 如果是不表示連續(xù)性的動(dòng)詞用于現(xiàn)在完成時(shí)的句子,不可以和以for表示的"一段時(shí)間"的狀語連用。在這種情況下,應(yīng)該用"It has been … ;since…"的句式來表達(dá)。如:
  He has joined the army for five years. (錯(cuò)誤)
  It has been five years since he joined the army。(正確)