现在完成时的一般疑问句(简单部分)
She has left her office.
将陈述句中的助动词have或has提前到句首
Has she left her office?
例句练习
Has he seen that movie?
Have they arrived at the airport?
Has the store been closed for many days?
区分现在完成时和过去时的一般疑问句
【定义一】单纯询问“是否做过某事”用现在完成时
【定义二】询问“(到现在)一个动作是否持续了一段时间”用现在完成时
【定义三】询问“在过去的某个时候,一个动作是否发生过”用一般过去时
例句练习
Have you seen my son?
Have you had dinner?
Have you lived in Beijing for 5 years?
Did you see my son yesterday?
Did you stay in Beijing for 5 years when you were a kid?
现在完成时的特殊疑问句
特殊疑问词+have/has+陈述句(动词要用过分形式)
【重要定义】当特殊疑问句询问“(到现在)一个动作...了?”要用现在完成时
How many years has he learned Chinese?
What have you done?
How many words have you learned?
现在完成时的否定句
区分现在完成时和过去完成时的否定句
【定义一】(到现在)主语还没有完成某事=现在完成时否定句
【定义二】过去的语境+主语没有做某事=过去时
【定义三】过去的时间+主语还没做某事=过去时
例句练习 (not...yet 还没...)
I haven't told her anything yet.
I met Lisa just now, but I didn't tell her anything.
I haven't finished my work yet.
You didn't finish your work yesterday.
I haven't received his email yet.
I didn't receive any emails yesterday.
have been to 和have gone to 的区别
have been to 去过... They have been to Paris twice.
have gone to 去...了 They have gone to Paris.
一段时间的各种表达方式
for ten years 表示一段时间,可用在任何时态中
以下方式只能用在完成时中
【since+过去的时刻】=自从那个时刻到现在=持续到现在的一段时间
since ten years ago=in the past ten years=持续到现在的一段时间
I have lived here since 2003.
He has lived alone since Anna died.
I have lived here in the past ten years.
【重要定义】还未结束的时间可用现在完成时
(如果现在时早上9点,你可以说)I have practiced the piano this morning.
(如果现在时下午3点,你只能说)I practiced the piano this morning.
现在完成是的另一种表达方式
It has been+一段时间+since+过去时陈述句(要用瞬间动词)
【重要定义一】类似“自从某事”(到现在)已经一段时间了的句子 要用上方句型翻译
It has been 3 weeks since he disappeared.
It has been 2 mouths since i lost my job.
【重要定义二】“(到现在)一个动作持续了一段时间”可转换为上方句型翻译
He has been away for 3 mouths.
It has been 3 mouths since he left.
例句练习
It has been a few years since he died.
It has been many years since i last met him.
It has been half an hour since the movie started.
It has been 3 years since i started to work here.
It has been 3 years since i started to live here.
It has been 3 years since i moved here.
现在完成进行时
have been doing sth (到现在)一直在做某事
They have been talking for 4 hours.
We have been waiting here for 30 minutes.
【提示】表达抽象概念的动词,不能用在现在完成进行时中,但可以用在普通现在完成时中。
I have been having this car for a year. 是一个错误的句子,因为“拥有”是一个抽象概念
I have had this car for a year. 才正确
原文/参考链接
https://zhuanlan.zhihu.com/p/61481775