用 for 搭配一段时长,表示持续了多久:for five years、for a week、for two hours。
for + 一段时长
I have lived here for five years.
She has worked there for six months.
We have known each other for a long time.
试一试: She has worked at the clinic ___ six months. (for / since / from) 答案: for — 六个月是一段时长(持续了多久),所以用 for:for six months。"Since" 是用于起点的(since January),而 "from" 在这里的现在完成时用法里不适用。
since + 一个起点
用 since 搭配一个时间点,表示从什么时候开始:since Monday、since 2019、since I was a child。
I have lived here since 2019.
She has worked there since January.
We have known each other since school.
试一试: Hiroshi has lived in Haffenville ___ 2019. (since / for / from) 答案: since — 2019 是开始的时间点,所以用 since:since 2019。"For" 是用于时长的(for five years),而 "from" 后面还需要接一个 "to"。
到现在依然如此:have / has done
跟 for 和 since 搭配时,这件事从过去开始,到现在依然如此,所以用 have / has + 过去分词,不用一般现在时或一般过去式。
I have studied English for two years. (I still study it.)
We have stayed at this hotel since Friday.
Camila has lived here since she was young.
Not "I live here for three years." — say "I have lived here for three years.". 这件事从过去开始,到现在依然如此,所以用 have lived,不用一般现在时的 "live"。
试一试: We ___ each other since school. (have known / know / knew) 答案: have known — 这件事从上学时开始,到现在依然如此,所以用 have known。"Know" 只表示现在,而 "knew" 听起来像是已经结束了,好像你现在已经不认识对方了。
否定,以及问 How long?
要说否定,就在 have/has 后面加上 n't:haven't(have not)/ hasn't(has not)+ 过去分词。要问持续了多久,用 How long have / has …? 开头。
I haven't seen Camila since Monday.
He hasn't lived here for long.
We haven't lived here since we were children — only since last year.
How long have you lived in Haffenville?
How long has she worked at the clinic?
Not "How long you have lived here?" — say "How long have you lived here?". 疑问句里 have 要放在 you 前面:How long have you lived…?
试一试: ___ have you lived in Haffenville? (How long / How much / How many) 答案: How long — 要问从开始到现在有多久,用 How long have / has …? "How much" 问的是量,"How many" 问的是数目,都不是问时间长短。
试一试: I ___ seen Camila since Monday. (haven't / don't / didn't) 答案: haven't — have + 过去分词(have + seen)的否定要用 haven't / hasn't:I haven't seen。"Don't" 和 "didn't" 是给一般现在时和一般过去式用的,不用于 have/has + 过去分词。
for 还是 since?(快速判断)
问问自己:这是一段时长,还是一个起点?一段时长(持续多久)→ for。开始的时间点 → since。小窍门:如果前面能加 "the last…"(the last five years),那通常就用 for。
for two weeks, for an hour, for ages → a length → for
since Tuesday, since 9 o'clock, since we met → a starting point → since
I've been busy for three days. / I've been busy since Monday.
Not "I have known her for last year." — say "I have known her since last year.". "Last year" 是起点(开始的时间),所以用 since,不用 for。
试一试: Lars has played the guitar ___ ten years, and in a band ___ last summer. (for … since / since … for / for … for) 答案: for … since — Ten years 是一段时长 → 用 for。Last summer 是一个起点 → 用 since。表示时长用 for,表示起点用 since。