Trả lời nhanh
Câu “We have been cooking for the party for four hours” nghĩa là “Chúng tôi đã nấu ăn cho bữa tiệc được bốn tiếng rồi”. Câu chia ở thì hiện tại hoàn thành tiếp diễn (have been + V-ing) vì hành động bắt đầu trong quá khứ, kéo dài đến hiện tại và có thể còn tiếp tục. “For four hours” chỉ khoảng thời gian.
Phân tích cấu trúc câu
| Thành phần | Trong câu | Vai trò |
|---|---|---|
| Chủ ngữ | We | Người thực hiện hành động |
| Trợ động từ | have been | have (hợp với we) + been |
| Động từ chính | cooking | V-ing của cook |
| Mục đích | for the party | “for” ở đây nghĩa là “để phục vụ cho” |
| Khoảng thời gian | for four hours | “for” + khoảng thời gian |
Công thức: S + have/has been + V-ing + (for + khoảng thời gian / since + mốc thời gian).
Câu có hai chữ “for” nhưng nghĩa khác nhau. Chữ thứ nhất chỉ mục đích (cho bữa tiệc), chữ thứ hai chỉ thời lượng (bốn tiếng). Em đừng nhầm hai chữ này khi dịch.
Vì sao dùng hiện tại hoàn thành tiếp diễn?
- Có “for four hours” nên cần một thì liên hệ quá khứ với hiện tại, nhấn mạnh độ dài thời gian.
- “Cooking” là hành động kéo dài, hợp với dạng tiếp diễn. Người nói muốn nhấn vào quá trình đang diễn ra, có thể vẫn chưa xong.
- Nếu nói “We have cooked for four hours” thì câu vẫn đúng ngữ pháp, nhưng thiên về việc đã nấu được bao nhiêu thời gian hoặc kết quả, ít gợi cảm giác “đang bận rộn mãi”.
Các cách viết lại câu (giữ nguyên nghĩa)
- We started (began) cooking for the party four hours ago.
- It is four hours since we started cooking for the party.
- We have been cooking for the party since + mốc thời gian. Ví dụ tự đặt: “since 2 p.m.” (nếu bây giờ là 6 p.m.).
- The last time we didn’t cook … không dùng ở đây, vì câu gốc nói về hành động đang diễn ra, không phải hành động đã ngừng.
Mẹo nhớ: for + khoảng thời gian đổi được thành ago khi dùng quá khứ đơn với started/began; since + mốc đổi thành for + khoảng và ngược lại.
Dạng phủ định, nghi vấn và câu hỏi
- Phủ định: We haven’t been cooking for the party for four hours.
- Nghi vấn: Have you been cooking for the party for four hours?
- Hỏi thời lượng: How long have you been cooking for the party? — We have been cooking for four hours.
Nếu kể lại ở quá khứ, ta lùi thì: “We had been cooking for four hours when the guests arrived” (Chúng tôi đã nấu được bốn tiếng thì khách đến).
Lỗi sai thường gặp
| Câu sai | Sửa | Lý do |
|---|---|---|
| We are cooking for four hours. | We have been cooking for four hours. | Thì hiện tại tiếp diễn không đi với khoảng thời gian đã kéo dài. |
| We have been cook … | We have been cooking … | Sau “been” phải là V-ing. |
| We have been cooking since four hours. | We have been cooking for four hours. | “Since” cần mốc thời gian, “for” mới đi với khoảng thời gian. |
| He have been cooking … | He has been cooking … | Chủ ngữ ngôi thứ ba số ít dùng has. |
Bài luyện tập
Bài 1. Viết lại câu bằng “ago”: We have been cooking for the party for four hours.
Bài 2. Chọn đáp án đúng: My mother ___ for the party since 8 a.m. (A. cooks / B. has been cooking / C. is cooking)
Bài 3. Đặt câu hỏi cho phần gạch chân: They have been decorating the hall for three hours.
Đáp án
- Bài 1: We started (began) cooking for the party four hours ago.
- Bài 2: B. Có “since 8 a.m.” là mốc thời gian, hành động kéo dài đến hiện tại nên dùng has been cooking.
- Bài 3: How long have they been decorating the hall?
Lưu ý: đề gốc trên lớp có thể cho thêm các phương án hoặc yêu cầu khác. Em hãy áp dụng cách phân tích trên (nhận diện for/since, xác định hành động kéo dài) để chọn hoặc viết lại cho đúng.
Câu hỏi thường gặp
We have been cooking for the party for four hours dịch là gì?
Nghĩa là: Chúng tôi đã nấu ăn cho bữa tiệc được bốn tiếng rồi (và có thể vẫn đang nấu).
Câu này thuộc thì nào?
Thì hiện tại hoàn thành tiếp diễn, cấu trúc have/has been + V-ing, thường đi với for + khoảng thời gian hoặc since + mốc thời gian.
Viết lại câu bằng thì quá khứ đơn thế nào?
We started (began) cooking for the party four hours ago.
Khi nào dùng for, khi nào dùng since?
Dùng for với khoảng thời gian (four hours, two days), dùng since với mốc thời gian (8 a.m., Monday, 2020).