Grammar question

“John will eat his sandwich by noon.”
“John will have eaten his sandwich by noon.”
Are both these sentences correct?
If not, is a correct version of the first sentence: “John will eat his sandwich before noon.”

thanks.

All 3 are good. Slightly different meaning for each–is that what you were after?

Thanks – what are the differences in meaning between the first two?

The “will have eaten” does not excl;ue the possibility that the sandwich has already been eaten, while “will eat” means that tyhe eating must take place in the future.

For example:
“Either John already ate his sandwich at 10 am, or John will eat his sandwich at 11 am. In either case, John will have eaten his sandwich by noon.”

exclude

"John will eat his sandwich by noon."
Statement of fact. The sandwich be eaten directly AT noon or before. There is an air of uncertainty implied as to when exactly, but there is a sense of ‘general certainty’ that it will be done no later than noon.

"John will eat his sandwich before noon."
Also a statement of fact. But there is more confidence. There is no way in hell the sandwich will be around at or after noon. It’s as good as gone, baby!

"John will have eaten his sandwich by noon."
Like Giles said.

Does this mean that the sentence “All the world’s oil will be used up by 2100” is wrong then? Should it be “… will have been used up”?

I think the differences are not simply propositional. In fact, I think they’re all the same, propositionally. Language is not just about truth value. It’s also about perspective and affect.

I think they are both correct. However, if you put that into the active voice, then
“We will have used up all the oil …”
is probably preferable to
“We will use up all the oil …”
because some of the using-up has already taken place.