关于has had或have had的用法

如题. 有一次去看医生,得了流感
我跟医生说 i have flu
医生问 how long have you had it for?
然后我的问题是,为什么医生不问 have long have you been having it for? 就是为什么不用been having,而用have had??

然后另一个相似问题,卖家在ebay上卖架电脑, 描述是 i`ve had it for a year
为什么不用 i have it for a year或i have been having it for a year???

不确定的别回答了, 不想被误导 因为已经很confused了.. :)
hmmmm 半理解半不理解 但首先谢谢你指教
这么问吧,以下分别哪些情况用哪句?为什么?
He has been having an affair for years
He has had an affair for years

He has run the business for years
He has been running the business for years

He has been coughing for years
He has had a/the cough for years

(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表明“过去”的时间概念。在过去完成时中,不区分单复数。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-11
个人的一点小看法:现在完成时表示的是过去的某一动作持续到现在,这个动作有可能已经终止,也有可能继续下去。比如说: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的没出现还会继续等下去 也表达了一种因为迟到而让对方感到愤怒的感情。 就说这么多了 希望能帮到你。哪里还有不对的地方 希望高手帮着校正下。
第2个回答  推荐于2017-12-27
这么说吧 医生的那个 为什么不用 have been having,而用have had
be doing sth 意思是正在做某事 是某时刻正在进行的事情 而生病是一直延续的动作,不是说某一时刻生病了现在不生病了,而是生病这个动作一直延续到现在 因此用have had 现在完成时表达已经生病的事实
第二个问题中 for/since+一段时间 都是现在完成时的标志短语 从买电脑一直延续到现在的动作因此用现在完成时
你记清楚 现在完成时是指已经发生了而且延续到现在的动作 这样说好理解吗
我不一定说的很准确 有不正确的地方请其他高手指点吧本回答被网友采纳
第3个回答  2012-02-28
嗯,这两句的侧重点不一样,how long have you had it for?
医生想知道你什么时间生病的,have long have you been having it for?医生问的是从你生病到现在身体的状况以及对现在的影响。have been doing 是现在完成进行时,重点是对现在的影响。追问

上半部分好像明白
但下半部分不明白,为什么说对现在影响
那您能假设个情景 什么时候该用 have been having sth,什么时候该用have had sth
越多例句和解释越好 谢谢

追答

先说have/has been doing 这个句型吧,表示说话人过去发生的动作持续到现在并有可能持续下去,强调动作的持续性和影响性。比如,你的朋友在等莹莹,你给莹莹打电话说:你快点,He has been waiting for three hours。这句话所表达的意思是他已经等了三个小时,在过去的三个小时里动作是持续性的,而且你给莹莹打完电话,莹莹不能马上就出现,所以,“等”这个动作还是可能持续的。你的那句 ;什么时候该用 have been having sth其实还是说话人侧重点的问题,在文中见到这个句型是你只要能翻译准确这个句型的意思就说明你掌握了,你翻译一下下面两句话,‘这个女孩已经在国外呆了三年了。’和“他画这幅画已经画了好几天了”,翻译完了你就会发现这个句型和have had sth有什么不同了,先把这个句型弄清楚在看别的就不容易混了,不要两个放在一起研究,不然谁都会晕。还不明白我在想办法。O(∩_∩)O~

第4个回答  2017-12-27
因为这两个动作,以后可能都不会再继续发生了。
相似回答