A. Study this example situation:
Bob and Alice are married. They got married exactly 20 years ago, so today is their 20th wedding anniversary.
They have been married for 20 years.
We say: They are married. (present)
but How long have they been married? (present perfect) (not ‘How long are they married?’)
They have been married for 20 years. (not ‘They are married for 20 years’)
We use the present perfect to talk about something that began in the past and still continues now. Compare the present and the present perfect:
* Amy is in hospital.
but She has been in hospital since Monday. (not ‘Amy is in hospital since Monday’)
* We know each other very well.
but We have known each other for a long time. (not ‘we know’)
* Are you waiting for somebody?
but How long have you been waiting?
B. I have been doing something (present perfect continuous) = ‘I started doing
something in the past and I am still doing it (or have just stopped)’:
* I’ve been learning English for a long time. (not ‘I am learning’)
* Sorry I’m late. Have you been waiting long?
* It’s been raining since I got up this morning.
The action can be a repeated action:
* ‘How long have you been driving?’ ‘Since I was 17.’
C. I have done (simple) or I have been doing (continuous)
The continuous is more usual with how long, since and for (see also Unit 10B):
* I’ve been learning English for a long time. (not usually ‘I’ve learnt’)
You can normally use either the continuous or simple with live and work:
* John has been living/has lived in London for a long time.
* How long have you been working/have you worked here?
But we use the simple with always:
* John has always lived in London. (not ‘has always been living’)
You can use the continuous or the simple for actions repeated over a long period:
* I’ve been collecting/I’ve collected stamps since I was a child.
Some verbs (for example, know/like/believe) are not normally used in the continuous:
* How long have you known Jane? (not ‘have you been knowing’)
* I’ve had a pain in my stomach since I got up this morning.
For a list of these verbs, see Unit 4A. For have see Unit 17.
D. We use the present perfect simple in negative sentences like these:
* I haven’t seen Tom since Monday. (= Monday was the last time I saw him)
* Jane hasn’t phoned me for two weeks. (= the last time she phoned was two weeks ago)