Foundation grammar · Unit 18 · A2

How long have you ... ? (present perfect 4)

Present perfect

Use the present perfect (have been, have lived, have known) or the present perfect continuous (have been + -ing) to say how long a situation has continued from the past until now.

Go to the exercises

A is and has been

Kerry is on holiday in Cornwall. She is there now.

She arrived in Cornwall on Monday. Today is Thursday.

How long has she been in Cornwall?

She has been in Cornwall since Monday, or for three days.

Monday ... now (Thursday)
she arrived she has been in Cornwall since Monday / for three days she is in Cornwall now

is = present. has been = present perfect.

  • "How long have you been in Cornwall?" "Since Monday."
  • She's in Cornwall now. She's been there for three days.

B Present simple or present perfect

To say how long, use the present perfect, not the present simple.

present simple present perfect simple (have been / have lived / have known etc.)
Tom and Ruth are married. They have been married for twelve years. (not They are married for twelve years.)
Are you married? How long have you been married? (not How long are you married?)
Do you know Imran? How long have you known him? (not How long do you know him?)
I know Imran. I've known him for ages. (not I know him for ages.)
Zara lives in Bristol. How long has she lived in Bristol? She has lived there all her life.
I have a dog. How long have you had your dog? I've had him since March.

With a continuous action, use the present perfect continuous (have been + -ing).

present continuous present perfect continuous (have been + -ing)
I'm learning Welsh. How long have you been learning Welsh? (not How long are you learning Welsh?) I've been learning Welsh for a year.
Dad is watching the snooker. How long has he been watching it? He's been (= he has been) watching it since two o'clock.
It's snowing. It's been (= it has been) snowing all day.
  • They've been married for twelve years.
  • How long have you known Imran?
  • I've had my dog since March.
  • I've been learning Welsh for a year.
  • It's been snowing all day.

Exercises

18.1 Complete the sentences.

  1. Mum is in Spain. She's been there since Saturday.

    Mum is in Spain. She's been there since Saturday.

  2. I know Darren. I've known him since we were at school.

    I know Darren. I've known him since we were at school.

  3. Pete and Sue are married. They married since 2004.

  4. Our dog is ill. He ill for a week.

  5. We live in Doncaster. We there for twenty years.

  6. Maria works in a hospital. She in a hospital for six years.

  7. Ollie has toothache. He toothache since last night.

  8. I'm learning to drive. I to drive for three months.

18.2 Read each sentence and make a question with How long ...?

  1. Kerry is at university.

    How long has she been at university?

    How long has she been at university?

  2. Ben and Hannah are in Australia.

  3. I know Ahmed.

  4. Freya is learning the guitar.

  5. My sister lives in York.

  6. I'm a nurse.

  7. It's snowing.

18.3 Read each scene and complete the sentence. Your sentence must end with one of the phrases in the list.

for twenty minutesall morningall his lifefor thirty yearssince she was 16since Friday

  1. An old couple are holding hands. They say: "We're married. Our wedding was thirty years ago."

    They've been married for thirty years.

    They've been married for thirty years.

  2. A man says: "I live in Belfast. I was born here and I've never lived anywhere else."

    He .

  3. A family are sitting outside their tent. They say: "We're on holiday. We arrived on Friday."

    They .

  4. It is 12 o'clock. Rain is pouring down the window. It started raining at 8 o'clock this morning.

    It .

  5. A woman is standing at a bus stop, looking at her watch. She says: "I'm waiting for the bus. I got here twenty minutes ago."

    She .

  6. A woman is holding a violin. She says: "I play the violin. I started when I was 16."

    She .

18.4 Which is right? Choose the correct form.

  1. Leah ___ (is / has been) in Italy since June.

    has been

    Leah has been in Italy since June.

  2. Dan is my neighbour. I ___ (know / have known) him very well.

  3. Dan is my neighbour. I ___ (know / have known) him for ten years.

  4. "Sorry I'm late. How long ___ (are you / have you been) waiting?" "Only a few minutes."

  5. Kate ___ (works / has worked) in a café. She likes it there.

  6. Grandad is watching the cricket. He ___ (is / has been) watching it since lunchtime.

  7. "How long ___ (do you live / have you lived) in Cardiff?" "Since 2010."

  8. "Is that a new watch?" "No, ___ (I have / I've had) it for years."

  9. Sophie ___ (is / has been) in Scotland at the moment. She ___ (is / has been) there since Tuesday.

See also