Present perfect (I have done /I have been doing) with how long, for, since в английском языке
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 use the present perfect to say how long something has existed or how long something has been happening.
They are married.
| {
|
How long have they been married?
They have been married for 20 years.
|
|
We use the present perfect continuous (
I have been doing) to say how long something has been happening. Note that the action is still happening now.
- I've been studying English for a long time.
- Sorry I'm late. Have you been waiting long?
- It's been raining since I got up this morning.
Sometimes the action is a repeated action:
- Liz has been driving for ten years.
- How long have you been smoking?
The continuous (
I have been doing) or the simple (
I have done) can be used for actions repeated over a long period:
- I've been collecting/I've collected stamps since I was a child.
We use the simple (
I have done) for situations that exist for a long time (especially if we say
always). Note that the situation still exists now.
- My father has always worked hard, (not has always been working)
We use the continuous for situations over a shorter time. Compare:
- John has been living in Caracas since January.
- John has always lived in Caracas.
Some verbs (for example
be, have, know) are not normally used in the continuous (see
this for a list):
- How long have Bob and Alice been married?
- Sue has had a cold for the past week, (not has been having)
- Bill and I have known each other since high school.
Do not use the simple present (
I do) or present continuous (
I am doing) to say how long something has been happening:
- I've been waiting here for an hour, (not I am waiting)
- How long have you known Jane? (not do you know)