Present Perfect For and Since Exercises

Practise for vs since with the present perfect: 20 free questions on duration, "How long have you...?" and why "since three years" is wrong. B1.

medium 20 questions A2-B2

Start the exercise

How this works

This is the use of the present perfect that describes something still going on, and it is the one Indian English gets wrong most consistently.

When a situation started in the past and is still true now, English uses the present perfect - not the present, and not the present continuous. "I have worked here for three years." The three years are not over; they run up to this moment, which is exactly why the tense reaches from the past into the present.

For and since divide the job cleanly. "For" measures a length of time: for three years, for two hours, for a long time, for ages. "Since" names the point it started: since 2019, since Monday, since March, since I moved here. If you can put "ago" after it, use "for"; if it is a date, a day or an event, use "since".

The two are interchangeable in meaning, not in form. "I have lived here for five years" and "I have lived here since 2021" say the same thing in 2026.

The question is "How long...?" and it takes the same tense: "How long have you worked here?" Answering with the present - "I work here since 2019" - is the error this exercise exists to fix.

The continuous version, "have been working", is available and often more natural for an activity that is genuinely ongoing: "I have been working here for three years", "it has been raining since morning". But state verbs - know, have, own, belong, understand - never take it: "I have known her since college", never "I have been knowing her".

Why this trips up Indian English speakers

"I am working here since three years" is the most recognisable tense error in Indian English, and it contains two separate mistakes.

The first is the tense. Hindi uses a present-tense construction for a situation that started in the past and is still going, and it maps directly onto the English present continuous - so "main teen saal se yahan kaam kar raha hoon" becomes "I am working here since three years". English does not allow the present or the present continuous for a duration reaching back into the past; it requires the present perfect.

The second is the preposition. "Since" names a starting point and "for" measures a length, so "since three years" is wrong twice over - three years is a length, not a point. It would have to be "since 2022" or "for three years".

The correct sentence is "I have worked here for three years", or equally "I have been working here since 2022".

This one is worth more than any other item on this page. It appears in the first ninety seconds of almost every interview, in the answer to "tell me about yourself", and it is the sentence an interviewer is most likely to hear you get wrong. Two words change - "am working" becomes "have worked", "since" becomes "for" - and the whole sentence lands differently.

20 questions

All 20 questions are below, with the rule explained above. Turn on JavaScript to work through them one at a time and check each answer as you go.

  1. I _____ (work) here _____ three years.

    Two blanks: the tense, and the word before a length of time.

  2. She has lived in Delhi _____ 2019.

    A year is a point, not a length.

  3. We have been waiting _____ two hours.

    Two hours is a length.

  4. Fix this sentence: I am working in this company since 2021.

    _____

    The preposition is right. The tense is not.

  5. How long _____ you _____ (know) her?

    "How long" always takes this tense.

  6. It has been raining _____ this morning.

    A point in time.

  7. Fix this sentence: He is staying with us since last Tuesday.

    _____

    The tense again.

  8. They have been married _____ over ten years.

    Over ten years is a length.

  9. I _____ (not see) him _____ we graduated.

    An event can be a starting point too.

  10. Which sentence is correct?

    Check the tense and the preposition.

  11. She has been studying _____ eight in the morning.

    A clock time is a point.

  12. We _____ (have) this car _____ about six years.

    Careful with the participle of "have".

  13. Fix this sentence: How long you are living in Pune?

    _____

    Both the word order and the tense need work.

  14. I have not eaten anything _____ breakfast.

    A meal can mark a point in time.

  15. Arrange the words into a correct sentence.

    _____

    Subject, auxiliary, participle, place, duration.

  16. The shop has been closed _____ the pandemic.

    An event, not a length.

  17. He _____ (own) that shop _____ more than a decade.

    A state verb, and a measured length.

  18. Which is correct?

    The period runs up to now.

  19. They have been friends _____ school.

    School here is a point in the past.

  20. I _____ (wait) for your reply _____ Monday, and I still _____ (not hear) anything.

    Three blanks, all in the same open period.

Now say it out loud

Getting it right in a gap is not the same as getting it right while you are talking. That is the gap this whole site exists to close, and it takes sixty seconds.

Say how long you have lived in your city and how long you have been studying or working, using "for" in one sentence and "since" in the other.

Practise this out loud

Common questions

What is the difference between for and since?

"For" measures a length of time: for three years, for two hours, for ages. "Since" names the point something started: since 2019, since Monday, since I graduated. Both are used with the present perfect, and they mean the same thing from different directions - "for five years" and "since 2021" can describe the same period.

Why is "I am working here since 2019" wrong?

Because a situation that started in the past and is still true takes the present perfect, not the present continuous: "I have worked here since 2019" or "I have been working here since 2019". The present continuous in English describes what is happening right now, not how long something has been going on.

When should I use "have been working" instead of "have worked"?

Both are usually fine for an ongoing activity, and "have been working" slightly emphasises that it is continuing. Use it for genuine activities - working, studying, waiting, raining. Never use it with state verbs: "I have known her since college", not "I have been knowing her".

More present perfect practice

All present perfect exercises · All grammar topics