Hiện tại hoàn thành vs quá khứ đơn
Công thức
Hiện tại hoàn thành
S + have/has + V3
I have finished my homework.
Quá khứ đơn
S + V2/V-ed
I finished it last night.
Dấu hiệu nhận biết
alreadyyetjustsinceforeverneveryesterdayagolast
Có mốc thời gian rõ trong quá khứ → quá khứ đơn. Không có → hoàn thành.
Vì sao hay sai
Đây là lỗi lớn nhất của người Việt học tiếng Anh, và lý do rất cụ thể: tiếng Việt chỉ có một chữ 'đã' cho cả hai. 'Tôi đã ăn rồi' và 'Tôi đã ăn lúc 7 giờ' dùng cùng một chữ, còn tiếng Anh bắt buộc tách. Quy tắc: nói RÕ thời điểm trong quá khứ thì dùng quá khứ đơn; không nói thời điểm, chỉ quan tâm kết quả đến hiện tại, thì dùng hiện tại hoàn thành.
Sai và đúng
I have seen him yesterday.
I saw him yesterday.
'Yesterday' là thời điểm đã đóng — không đi với hiện tại hoàn thành.
I already ate.
I have already eaten.
'Already' nói về kết quả tính đến bây giờ.
How long do you live here?
How long have you lived here?
Việc bắt đầu trong quá khứ và còn kéo dài đến giờ.
Cách nhớ
Hỏi thử: câu này có nói RÕ lúc nào không? Có (yesterday, last week, in 2020, ago) thì quá khứ đơn. Không, mà đang nói tới bây giờ thì sao, thì hiện tại hoàn thành.
Phần này để hiểu và tra. Bài tập chấm điểm cho từng điểm ngữ pháp chưa có — khi có, Virgo sẽ ghi lại chỗ bạn sai và đưa vào hàng ôn.