为什么过去完成时和将来完成时的时间状语要用before或者by?
——网友这句话不正确或不准确。你把 at 改为 before 也不能使用将来完成时!看我分析:
I will have had my lunch before 1 pm. (误)
I will have had my lunch by 1 pm. (正)
I will have had my lunch at 1 pm. (误)
1 pm 表示“下午一点钟”。before 1 pm 和 at 1 pm,这二个词组虽然意思不同,但作用是相同的,都表示“将来的一个时间点”,都要用一般将来时。before 1 pm 也不例外。例如:
I will have my lunch before 1 pm.
I will have my lunch at 1 pm.
如果用了by 1 pm.,就用将来完成时。by 1 pm 的含义是“从现在时间开始持续到1 pm 这个时间结束”,里面必须包含或暗示一个时间段。将来完成表示:在将来某一时间之前完成的动作,并往往对将来某一时间产生影响,或叙述某事持续到将来时,已经有一段时间了。