区别的要点:1、是看谓语动词表示的是延续性事件还是非延续性事件;2、是看谓语描述的是说话人关注的时间点之前还是之后的事件。
例如:
He wrote the report in three days。他写报告用了三天时间。
= It took him three days to write the report。
谓语为延续性终结动词,说话人回顾事件的发生。in表示这段时间之内(持续事件占据了整个这段时间)。
He had no difficulty in writing the report and handed it in in two days. 他写报告没遇到什么困难,二天后就交了上去。
谓语动词为非延续性动词,动作在说话人关注的时间之后(即写报告没困难之后)。这个例句表明in+时间段并不限于谓语为一般将来时,虽然一般将来时更多见而已。例如:
He will be back in three days. 此处的will be back为will come back的意思,是非延续动词。come back为说话人关注的时间(现在)之后的事件。所以in表示这段时间结束时,即某某时间之后。这种用法的in+时间段可以加or so, 表示大约之意。
within表示一段时间之内,既可以表示说话人关注的时间之前,也可以表示说话人关注的时间之后的事件,谓语动词可以是延续性动词,也可以是非延续性动词。
关键是within 表示一段时间之内这个意义时,这个时间段是确定的,例如,within 3 days, within one week. 此时不能加or so. 这不符合逻辑。例如within 3 days本来就表示1天、2天或3天。加上左右,就是2天或4天,那就直接说within 4 days了。