How long have you been ?

A  Xét ví dụ sau:

Bob and Alice are married. They got married exactly 20 years ago, so today is the 20th wedding anniversary. They have been married for 20 years.

Bob và Alice đã thành hôn. Họ cưới nhau đúng 20 năm về trước, vì vậy hôm nay là ngày kỷ niệm thứ 20 ngày cưới của họ. Họ đã cưới nhau được 20 năm rồi.

They are married (present) Họ đã cưới

nhưng

How long have they been married? (present perfect):

Họ đã cưới được được bao lâu rồi?

(Không nói "How long are they married")

They have been married for 20 years.

Họ đã cưới được 20 năm rồi.

(không nói "They are married for 20 years")

Chúng ta dùng thì present perfect để nói về những sự việc bắt đầu trong quá khứ và còn tiếp diễn đến hiện tại. Hãy so sánh hai thì present và present perfect qua các ví dụ sau:

Amy is in hospital.

Amy đang ở trong bệnh viện.

Nhưng

She has been in hospital since Monday. (not "Amy is in hospital since Monday")

Cô ấy đã nằm viện từ thứ hai.

We know each other very well.

Chúng tôi biết rõ về nhau.

nhưng

We have known each other for a long time. (not "we know")

Chúng tôi đã biết nhau khá lâu rồi.

Are you waiting for somebody?

Bạn đang chờ ai phải không?

nhưng

How long have you been waiting?

Bạn đã chờ được bao lâu rồi?

B. I have been doing something (present perfect continuous) = Tôi đã khởi sự làm việc gì đó trong quá khứ và tôi vẫn đang còn làm tiếp (hay vừa mới ngưng xong)

I’ve been learning English for a long time (not "I'm learning")

Tôi đã học tiếng Anh lâu rồi.

Sorry I’m late. Have you been waiting long?

Xin lỗi, tôi đến trễ. Bạn đã chờ tôi lâu chưa?

It’s been raining since I got up this morning.

Trời đã mưa từ lúc tôi thức dậy sáng nay.

Hành động có thể lặp đi lặp lại:

"How long have you been driving?" "Since I was 17."

"Bạn đã lái xe được bao lâu rồi?" "Từ khi 17 tuổi."

C. I have done (simple) hay I have been doing (continuous):

Thì continuous thường được dùng với how long, since và for (xem UNIT 10B):

I’ve been learning English for a long time. (Ít dùng "I've learnt")

Bạn có thể dùng cả hai thì present và continuous với động từ live (sống) và work (làm việc):

John has been living / has lived in London for a long time.

John đã sống ở Luân Đôn lâu rồi.

How long have you been working / have you worked here?

Bạn đã làm việc ở đây bao lâu rồi?

Nhưng chúng ta chỉ dùng thì simple với always:

John has always lived in London. (not "has always been living).

John luôn sống ở Luân Đôn.

Bạn có thể dùng thì continuous hay simple cho những hành động lặp đi lặp lại trong một khoảng thời gian dài:

I’ve been collecting / I’ve collected stamps since I was a child.

Tôi đã sưu tập tem từ khi tôi còn nhỏ.

Một số động từ như know/like/believe không được dùng ở thì continuous:

How long have you known Jane? (không nói "have you been knowing")

Bạn đã biết Jane bao lâu rồi?

I’ve had a pain in my stomach since I got up this morning.

Tôi bị đau bụng từ lúc ngủ dậy sáng nay.

Để biết thêm bảng các động từ loại này xem UNIT 4A. Để biết rõ hơn về Have xem UNIT 17

D. Chúng ta dùng thì present perfect simple trong câu phủ định như sau:

I haven’t seen Tom since Monday.

Tôi không gặp Tom từ thứ hai. (= ngày thứ hai vừa rồi là lần cuối tôi gặp Tom).

Jane hasn’t phoned me for two weeks.

Jane không gọi điện thoại cho tôi hai tuần nay. (= lần cuối cô ấy gọi điện cho tôi cách đây hai tuần).