In Michael Swan's Practical English Usage I come across the sentences:

We can use the future perfect to say that something will be completed, finished or achieved by a certain time.


The future progressive can be used to say that something will be in progress at a particular time.

Why should we use by in the first case and at at the second? Can we replace it with each other?


3 Answers 3


The use of by allows the person performing the task to complete it any time up until the specified time.

The use of at specifies the exact and only time the task must be completed.

Please finish this by 7:00pm I'll stop by your house at 7 to pick it up.

Please blow the charge on the vault at 7:00pm. I'll then run in and grab the jewels.


In addition to Jim's correct answer:

You sometimes can use both of them I guess.

The task should be finished by/at 5 o' clock.

I think they mean the same in this specific case. So whenever you are talking about some kind of status just like finished it doesn't matter because you only want to make sure it is finished at the given point of time. The exact moment when the task is done is not relevant here (verification please).

  • 2
    They don't mean the same. If you instruct an assassin, "I want him dead at/by 5pm", those mean the same: "at" means "At 5pm, his status should be 'dead'", "by" means "I want you to kill him no later than 5pm." When talking about the task being finished, "finished at 5pm" *could" mean "at 5pm, the status should be 'finished'" but it would be more common and natural to mean "The moment of finishing should be 5pm." For example, "Our evil plan will be finished at 5pm" most likely means that, at 5pm, the assassin pulls the trigger and you rule the world. Dec 8, 2014 at 9:20

"By" means the task can be completed up until the time stated. After that set time is not acceptable, like meeting someone by 7:30 — you can arrive earlier but no later than. "At" means a specific point in time.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .