(1)be doing sth 意思是正在做某事 是某时刻正在进行的事情 而生病是一直延续的动作,不是说某一时刻生病了现在不生病了,而是生病这个动作一直延续到现在 因此用have had 现在完成时表达已经生病的事实
(2)第二个问题中 for/since+一段时间,都是现在完成时的标志短语,从买电脑一直延续到现在的动作因此用现在完成时,现在完成时是指已经发生了而且延续到现在的动作。
扩展资料:
1. 在现在完成时中,谓语动词的完整形式是“ have/has + 过去分词 ”,如果主语不是单三的,就用 have:
Have you had any coffee yet? 你喝点咖啡没有?
I have had some coffee. 我已经喝了一些咖啡。
以上两句中,都是用 have 帮助后面的 had(喝),与had一起构成完整的“现在完成时的谓语动词”。
2. 如果主语是单三的,就会用 has 来帮忙,以反映主语的“单三”属性。
He has finished already. 他已经完成了。
Has your father come back yet? 你爸爸已经回来了吗?
3. 上面是现在完成时的例子,关于现在完成时,我们会在随后的时态讲解中展开。下面看看 had ---过去完成时的助动词。过去完成时的用法,大家可以简单地理解为“过去的过去”,在过去完成时中,完整的谓语结构“had + 过去分词 ”:
When I entered the classroom, I found that they had moppedthe floor carefully. 当我走进教室,发现他们已经把地板仔细地拖过了。这里的had 就是后面 mopped 的助动词,以帮助mopped表明“过去”的时间概念。在过去完成时中,不区分单复数。
个人的一点小看法:现在完成时表示的是过去的某一动作持续到现在,这个动作有可能已经终止,也有可能继续下去。比如说:I have read that book .我读了那本书(从过去发生这个动作到现在 这个动作从过去持续到现在,结果:有可能这本书已经读完了,也有可能没有读完还会继续读下去。)现在完成进行时表示过去的某一动作持续到现在,这个动作还没有完成并会持续下去。(还有例外,最后在解释。)比如说:I have been reading that book。我一直在读那本书(书还没有看完,还会继续读下去。)以上是基本的解释。
现在来看看你的问题:我跟医生说 i have flu
医生问 how long have you had it for?然后我的问题是,为什么医生不问 have long have you been having it for? 就是为什么不用been having,而用have had??
就像上面的两个例子一样:how long have you had it for?你得这病多长时间了?(病有可能好了 有可能没好。)
how long have you been having it for? 你得这个病多长时间了。(得病到现在病还没好,而且会一直持续下去,疑问句,会持续多长时间这个是潜在的意思)
解释: 你去看病当然没好。所以医生主要应该是问你的病持续到现在多长时间了,这个病对你现在影响,就是医生对患者有个了解。而不是说医生要了解你这个病会持续多长时间。如果你得病了 医生潜在的意思问你这个病还会持续多长时间,那你说你去那个医院干嘛??无论在哪里应该都不会有医生问病人他这个病还会持续多长时间吧???所以完成时的主要问病持续时间和现在影响是什么样应该是比较好的问法。(这个是个人想法啊)
第二个就好解释了:
然后另一个相似问题,卖家在ebay上卖架电脑, 描述是 i`ve had it for a year
为什么不用 i have it for a year或i have been having it for a year???
i`ve had it for a year(他已经有着个电脑一年了,引申:以后可能还会持有下去 也有可能现在没有
i have been having it for a year???:这个是已经有着个电脑一年了,以后还会继续持有的意思
i have it for a year:你想要表达的是一般现在时吧,那不应该有时间限制啊,一般现在时的时间概念应该是过去,现在,将来都包括了。所以这个有问题
总结:都放网上拍卖了,为什么还要用将来一直持有的方式表达呢?
然后就是刚才说的例外:现在完成进行时有些时候也表示从过去某个动作持续到现在停止了,这样是特别表达某种感情色彩。
比如:A已经坐在自己 屋里看书看了一天 然后苦B着脸到了客厅 老妈问你怎么了 回答:I have been reading for whole day.我已经看了一天的书(表示看书时间太长 看烦了 很苦的样子)
表达感情色彩还有就像是楼上那位哥们的解释:A等B等了很长时间 C打电话问B你丫到哪了。He has been waiting for you for two years.这个例子既解释了A因为B的没出现还会继续等下去 也表达了一种因为迟到而让对方感到愤怒的感情。 就说这么多了 希望能帮到你。哪里还有不对的地方 希望高手帮着校正下。
这么说吧 医生的那个 为什么不用 have been having,而用have had
be doing sth 意思是正在做某事 是某时刻正在进行的事情 而生病是一直延续的动作,不是说某一时刻生病了现在不生病了,而是生病这个动作一直延续到现在 因此用have had 现在完成时表达已经生病的事实
第二个问题中 for/since+一段时间 都是现在完成时的标志短语 从买电脑一直延续到现在的动作因此用现在完成时
你记清楚 现在完成时是指已经发生了而且延续到现在的动作 这样说好理解吗
我不一定说的很准确 有不正确的地方请其他高手指点吧
嗯,这两句的侧重点不一样,how long have you had it for?
医生想知道你什么时间生病的,have long have you been having it for?医生问的是从你生病到现在身体的状况以及对现在的影响。have been doing 是现在完成进行时,重点是对现在的影响。
因为这两个动作,以后可能都不会再继续发生了。