Learn English – Why is this wrong? I have become sick for 2 days

meaning

I am an Assistant English teacher and today my co-worker(main English teacher), asked me why this sentence is not ok;

I have become sick for 2 days.

I told him that you should use been instead of become, but I could not tell him why.

Best Answer

Because "become" indicates a transition, not a state. To say that you "have become sick for two days" makes little sense, because it doesn't take you two days to make the shift from being healthy to being ill. (Or if it does, it's not a normal topic of conversation.) "I have been", on the other hand, indicates your state: "I have been sick for two days" means that you have existed in a state of sickness for two days now.

Thus you would also not say "*I became sick for two days", but "I became sick 2 days ago".