Usa for con una duración de tiempo, para decir cuánto tiempo: for five years, for a week, for two hours.
for + una duración de tiempo
I have lived here for five years.
She has worked there for six months.
We have known each other for a long time.
Pruébalo: She has worked at the clinic ___ six months. (for / since / from) Respuesta: for — Seis meses es una duración de tiempo (cuánto tiempo), así que usa for: for six months. "Since" es para un punto de inicio (since January), y "from" no se usa aquí con present perfect.
since + un punto de inicio
Usa since con un punto en el tiempo, para decir cuándo empezó: 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.
Pruébalo: Hiroshi has lived in Haffenville ___ 2019. (since / for / from) Respuesta: since — 2019 es un punto en que empezó, así que usa since: since 2019. "For" es para una duración (for five years), y "from" necesitaría un "to" después.
Sigue siendo cierto ahora: have / has done
Con for y since, la cosa empezó antes y sigue siendo cierta ahora, así que usa have / has + el participio, no el presente ni el pasado simple.
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.". Empezó antes y sigue siendo cierto, así que usa have lived, no el simple "live".
Pruébalo: We ___ each other since school. (have known / know / knew) Respuesta: have known — Empezó en la escuela y sigue siendo cierto ahora, así que usa have known. "Know" es solo ahora, y "knew" suena terminado, como si ya no los conocieras.
Decir que no y preguntar How long?
Para decir que no, añade n't a have/has: haven't (have not) / hasn't (has not) + el participio. Para preguntar cuánto tiempo, empieza con 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?". En una pregunta, have va antes de you: How long have you lived…?
Pruébalo: ___ have you lived in Haffenville? (How long / How much / How many) Respuesta: How long — Para preguntar por el tiempo desde el inicio hasta ahora, usa How long have / has …? "How much" pregunta por cantidad y "How many" por número, no por duración de tiempo.
Pruébalo: I ___ seen Camila since Monday. (haven't / don't / didn't) Respuesta: haven't — El participio (have + seen) forma el negativo con haven't / hasn't: I haven't seen. "Don't" y "didn't" son para el presente y el pasado simples, no para have/has + el participio.
¿for o since? (comprobación rápida)
Pregúntate: ¿es una duración de tiempo o un punto de inicio? Una duración (cuánto tiempo) → for. Un punto en que empezó → since. Truco: si puedes decir "the last…" delante (the last five years), casi siempre es 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" es un punto de inicio (cuándo empezó), así que usa since, no for.
Pruébalo: Lars has played the guitar ___ ten years, and in a band ___ last summer. (for … since / since … for / for … for) Respuesta: for … since — Diez años es una duración → for. Last summer es un punto de inicio → since. Una duración de tiempo lleva for; un punto en que empezó lleva since.