Why is までに instead of まで used in the following sentence?


Here is a sentence that I encountered in a textbook.

> けがが治る **までに** ３週間かかった。

As far as I understand,「XまでYする」means that Y continues until time X,
whereas「XまでにYする」means that Y takes/will take place before time X. In the
sentence above, the 3 weeks lasted until the injury healed, so why is までに
used?




「までに」は動作がその時点までに完了するときに使います

Ex

宿題を明日までに終わらせる。

君が帰るまでに掃除をしておく。

それに対して 「まで」は動作、状態が継続しているときに使います。

EX

祭りは明日までです。

寝ないで朝まで仕事をする。

「までに」→by（完了）

「まで」→until（継続）

という使い分けをするわけです。

