Learn and practise the model how long have you (been) … ?
AWe use the present perfect to talk about something that began in the past and still continues now.
Compare the present and present perfect:
- Paul is in hospital.
but
He’s been in hospital since Monday. (= He has been …)
(not Paul is in hospital since Monday)
- We know each other very well.
but We’ve known each other for a long time.
(not We know)
- Do they have a car?
but
How long have they had their car?
- She’s waiting for somebody.
but
She hasn’t been waiting very long.
I’ve been learning / I’ve been waiting etc. is the present perfect continuous.
When we ask or say ‘how long’, the continuous is more usual:
- I’ve been learning English since January.
- It’s been raining all morning.
- Richard has been doing the same job for 20 years.
- ‘How long have you been driving?’
Some verbs (for example, know and like) are not normally used in the continuous:
- How long have you known Jane? (not have you been knowing)
I’ve had these shoes for ages. (not I’ve been having)
- Julia has been living in this house for a long time. or Julia has lived …
- How long have you been working here? or How long have you worked here?
But we use the simple (have lived etc.) with always:
- I’ve always lived in the country. (not always been living)
- I haven’t seen Tom since Monday. (= Monday was the last time I saw him)
- Sarah hasn’t phoned for ages. (= the last time she phoned was ages ago)