Công thức
- Khẳng định: S + will have + V3/V-ed
- Phủ định: S + will not (won't) have + V3/V-ed
- Nghi vấn: Will + S + have + V3/V-ed?
- Bị động: S + will have been + V3/V-ed
Cách dùng
- Diễn tả hành động sẽ hoàn thành trước một mốc thời gian trong tương lai: By the end of this month, we will have finished the report (Đến cuối tháng này, chúng tôi sẽ hoàn thành xong báo cáo).
- Nhấn mạnh kết quả tại mốc đó, không quan tâm hành động kéo dài bao lâu.
- Thường gặp với by the time + mệnh đề hiện tại đơn: By the time you come back, I will have painted the room (Trước khi bạn quay về, tôi sẽ sơn xong căn phòng).
- Không dùng với mốc mơ hồ như someday, one day; những trạng từ này thường đi với tương lai đơn.
Dấu hiệu nhận biết
- by + mốc tương lai: by 2030, by next Friday, by then
- by the time, before + mốc thời gian
- in + khoảng thời gian: in two years' time (trong hai năm nữa)
Lỗi thường gặp
- Nhầm với tương lai tiếp diễn: will have + V3 cho việc đã hoàn thành, will be + V-ing cho việc đang diễn ra.
- Chia will trong mệnh đề by the time: sai By the time you will arrive, đúng By the time you arrive.
- Dùng will have + V-ing, dạng này không tồn tại; nếu nhấn thời lượng phải dùng will have been + V-ing.
- Dùng sai cột bất quy tắc: sai will have wrote, đúng will have written.