Grammar rule and drill

Present perfect with for and since

For counts a period. Since names the starting point. Both connect the past to now.

CEFR A2-B120 questionsUpdated 5 October 2026

Go to the drillRead the ruleDownload worksheet (PDF)

For and since both answer the question "how long?", but they count differently. For takes a period: for two years, for a week, for ten minutes. Since takes the point when something started: since 2019, since Monday, since I was a child.

Both are used with the present perfect because the action or state continues up to now. "I have lived here for five years" means I moved here five years ago and I still live here.

The most common mistake is to use the past simple with for and since, or to use since with a period. This page drills the difference, the position of the words, and the question "How long have you...?".

The rule

For plus a period of time

  • For answers "how long?" with a length of time: for two hours, for three days, for six months, for a long time, for ages.
  • "I have known her for ten years." The friendship started ten years ago and continues.
  • For is also common with the past simple when the period is finished: "I lived in Rome for two years."
  • In the present perfect, the period reaches the present. That is why the tense is called present.

Since plus a starting point

  • Since answers "from when?" with a point in time: since 2020, since Monday, since eight o'clock, since my birthday.
  • The point can be a clause in the past simple: "I have liked jazz since I was a teenager."
  • Never use since with a period: since two years is wrong. Use for two years.
  • Since with the present perfect means the situation continues from that point until now.

How long questions and answers

  • Question pattern: How long plus have or has plus subject plus past participle. "How long have you worked here?"
  • Answer with for or since: "For three years" or "Since 2023."
  • The answer can also drop both words when the meaning is clear: "How long have you had that bike?" "About five years."
  • For and since usually sit before the time expression, after the past participle or after the verb: "I have lived here since March."

Present perfect or past simple?

  • Use the present perfect when the period continues to now: "I have been ill for a week." I am still ill.
  • Use the past simple when the period is finished: "I was ill for a week last winter." The week is over.
  • Finished time words like yesterday, last Monday, in 2019 and two days ago force the past simple.
  • The present perfect never combines with a finished time expression: "I have seen her yesterday" is wrong.

Negative sentences and other tenses

  • The negative often means "not once during that period": "I have not seen him since May."
  • "I have not eaten since breakfast" means the last meal was breakfast.
  • The present perfect continuous also works with for and since and stresses the activity: "I have been waiting for an hour."
  • Stative verbs usually take the simple present perfect: "I have known her since 2018", not "have been knowing".

Examples

  • I have lived in this city for six years.For plus the period six years, and the living continues now.
  • She has worked at the hospital since 2017.Since plus the starting year.
  • We have been friends since we were at school.Since can take a past simple clause as its starting point.
  • They have been married for twenty years.For plus a period that reaches the present.
  • I have not seen her since Monday.The last time was Monday; the gap continues to now.
  • He has had that guitar for a long time.Have as a state takes the simple present perfect, not the continuous.
  • How long have you known each other?The standard question pattern for a continuing friendship.
  • The shop has been open since 1998.Open describes a state that started in the past and continues.
  • It has been raining since this morning.The present perfect continuous with since for an activity that continues.
  • I saw her last Monday.Last Monday is a finished time, so the past simple is needed.

Common mistakes

Wrong: I have lived here since five years. Right: I have lived here for five years.
Since takes a starting point, not a period. Five years is a period, so use for.
Wrong: She has worked here for 2020. Right: She has worked here since 2020.
2020 is a point in time, so it takes since.
Wrong: I have seen her yesterday. Right: I saw her yesterday.
Yesterday is a finished time, and finished times take the past simple.
Wrong: I have been knowing him for years. Right: I have known him for years.
Know is a stative verb, so it stays in the simple present perfect.
Wrong: How long do you work here? Right: How long have you worked here?
A situation that started in the past and continues now takes the present perfect.

Practice drill

Answer all 20 questions. Each answer is marked at once, and the rule is explained under the question.

  1. I have lived here ___ 2019.

    Show answer and explanation

    Answer: A. since 2019 is a starting point, so since is correct. For would need a period such as three years.

  2. She has worked at the bank ___ five years.

    Show answer and explanation

    Answer: B. for Five years is a period, and periods take for in the present perfect.

  3. How long ___ you known him?

    Show answer and explanation

    Answer: C. have A continuing situation takes the present perfect question: How long have you known him?

  4. We have been friends ___ we were at school.

    Show answer and explanation

    Answer: D. since Since takes the starting point, and here the point is a past simple clause: since we were at school.

  5. He has had that bike ___ he was ten.

    Show answer and explanation

    Answer: A. since He was ten is the point when the state started, so since is correct.

  6. They have been married ___ 2015.

    Show answer and explanation

    Answer: B. since A specific year is a point in time, so it takes since.

  7. I have not seen her ___ Monday.

    Show answer and explanation

    Answer: C. since Monday marks the last time and the start of the gap, so since fits.

  8. She has been learning English ___ two years.

    Show answer and explanation

    Answer: D. for Two years is a period, so use for: for two years.

  9. How long ___ she had her car?

    Show answer and explanation

    Answer: A. has The state continues up to now, so the present perfect question uses has: How long has she had her car?

  10. We have waited ___ half an hour.

    Show answer and explanation

    Answer: B. for Half an hour is a period, so for is correct.

  11. I have not eaten anything ___ breakfast.

    Show answer and explanation

    Answer: C. since Breakfast is the starting point of the period without food, so since fits.

  12. The shop has been open ___ 1998.

    Show answer and explanation

    Answer: D. since A year names a starting point, so since is correct.

  13. They have known each other ___ ten years.

    Show answer and explanation

    Answer: A. for Ten years is a length of time, so it takes for.

  14. It has been raining ___ this morning.

    Show answer and explanation

    Answer: B. since This morning is the starting point of the rain, so since is correct.

  15. I have had this phone ___ two years.

    Show answer and explanation

    Answer: C. for Two years is a period, so it takes for in the present perfect.

  16. How long ___ you been waiting?

    Show answer and explanation

    Answer: D. have The waiting continues up to now, so the question uses have: How long have you been waiting?

  17. She has not written to me ___ last summer.

    Show answer and explanation

    Answer: A. since Last summer is a point in time, so since introduces the starting point.

  18. We have had this dog ___ March.

    Show answer and explanation

    Answer: B. since March is a point in time, not a period, so use since.

  19. He has been in hospital ___ a week.

    Show answer and explanation

    Answer: C. for A week is a period that reaches the present, so for is correct.

  20. I ___ her last Monday.

    Show answer and explanation

    Answer: D. saw Last Monday is a finished time, so the past simple saw is needed.

Questions learners ask

Can I use "for" with the past simple?

Yes. For works with any tense that can take a duration. "I worked there for five years" describes a finished period. "I have worked there for five years" describes a period that continues now. The tense, not the word for, tells the listener whether the situation is over.

Is "since" always followed by a time word?

No. Since can be followed by a noun (since Monday), a year (since 2017) or a clause (since I moved here). The clause after since stays in the past simple because it names a finished moment: "since she left", "since we met".

What is the difference between "for 10 years" and "in 10 years"?

For counts a period that continues: "I have been a teacher for ten years." In 10 years often means "after ten years" in a future sentence: "In ten years, I will be a manager." The two prepositions answer different questions, so they are easy to tell apart once you check the tense around them.

More grammar topics

Take the free A1 to C2 level test to find your starting point.