observer 发表于 2012-5-7 21:21:39

求助时态问题

tony经常会便秘, 很大原因就是不规律, 因此我就规定他每2天必须poo-poo
于是经常出现这样的情景:
我说:"Tony, it's time to poo-poo!"
Tony:" No! I have poo-pooed yesterday!"

对这个说法是否正确没有把握, 于是查了下baidu百科:

现在完成时用法:
(1)现在完成时用来表示现在之前已发生过或完成的动作或状态,但其结果却和现在有联系,也就是说,动作或状态发生在过去但它的影响现在还存在,也就是说,动作发生在过去,而对现在造成的影响和结果.
(2)现在完成时可以用来表示发生在过去某一时刻的,持续到现在的动作(用行为动词表示)或状态(be动词表示)常与for(+时间段),since(+时间点或过去时的句子)连用.

显然要套用的话, 只能以1来解释
但最后又有如下注意事项:
  1.现在完成时不能单独与准确时间连用,(如表示过去的时间状语)

  如yesterday(morning、afternoon),last(morning、afternoon)等,除非与for,since连用.

难道要说 :" No! I have poo-pooed since yesterday!", 觉得也有点怪.

求助各位解答!

phoebe_llin 发表于 2012-5-7 21:25:42

抛砖引玉先:把have去掉就可以了啊。

observer 发表于 2012-5-7 21:46:23

主要是孩子想强调"已经"这个概念,
由此我想到了论坛好象曾经有个帖子谈到的 "in here ", 按照我们学习的语法here 前不能用in, 如果英语考试这么写肯定丢分, 但是在真实语境下,如果是这个here指的是一个封闭的小空间, 前面加in也是很合适的 (是我的模糊记忆,可能有误哦)
于是, 我想征询下意见, 此处是否也可以这么认为呢, 也就是说可以与准确时间连用.

毕竟这些语法公式是国人总结的规律, 可能很机械而没有领会到其内涵.

meimeielan 发表于 2012-5-7 21:46:26

本帖最后由 meimeielan 于 2012-5-7 21:51 编辑

现在完成进行时加for和since时,都是为了强调这个动作做了多久,比如 He has stayed here for 2 hours.或I have been cooking since 5 o'clock.(这个准确的说是现在完成进行时,更多应用于口语,强调从那个时间点开始到现在一直在做!也就是楼主说的用法2)

since在接具体时间时,要接时间点,比如since last year,sinse three months ago,接yesterday时,一般都加上yesterday morning,yesterday afternoon。    for接时间段,如2 hours ,3 days ,4 yearas 等。

但这些句子用for 和since,都是为了强调那个动作做了多久,楼主的句子并不需要强调POO-POO了多久,没必要接时间。
可以用这几种方法来说,1——   I have alresdy poo-pooed.(只强调结果就可以了,不要加具体时间)
                                    2 ——    I poo-pooed yesterday.(用一般去过时,说明过去的那个时间做了那件事!)

不知道解释的明白否?

页: [1]
查看完整版本: 求助时态问题