Чтобы правильно ответить на этот вопрос, давайте разберем каждую из предложенных опций и определим, какая из них подходит лучше всего в данном контексте.
- a. have been keeping - это форма Present Perfect Continuous, которая используется для обозначения действия, начавшегося в прошлом и продолжающегося до настоящего момента. В данном случае, если бы мы сказали "By tonight I have been keeping to a diet for 2 weeks already", это означало бы, что я соблюдаю диету до сих пор, но не обязательно до конца вечера.
- b. keep - это форма Present Simple. Она не подходит, так как не передает нужное значение времени и продолжительности действия.
- c. will have been keeping - это форма Future Perfect Continuous. Она используется для обозначения действия, которое будет продолжаться до определенного момента в будущем. В данном случае "By tonight I will have been keeping to a diet for 2 weeks already" означает, что к вечеру я буду соблюдать диету уже 2 недели, что является правильным контекстом.
- d. had kept - это форма Past Perfect. Она используется для обозначения действия, которое произошло до другого действия в прошлом. В данном контексте это неуместно, так как мы говорим о настоящем и будущем времени.
Теперь, учитывая все вышесказанное, правильный ответ - c. will have been keeping, так как он точно передает идею о том, что к вечеру я уже буду соблюдать диету в течение 2 недель.