While both for and in could be used in the statement you have, in seems to be more prevalent in current usage. However, Google Ngrams indicates that this was not the case always. The use of for in this sentence has declined over time in favour of in.

PS: This is only with reference to negative sentences. Only for is suitable in positive sentences, as John Lawler's comment on polarity item states.


For and in have almost opposite meanings.

For indicates the duration that an activity occurs or a state exists:

  • "Thomas Jefferson has been dead for two centuries."
  • "He was in prison for two years."

In means the duration before some event occurs:

  • "I'll be there in a jiffy."
  • "He was out of prison in two years."

In the discontinuation of a past habitual action, those usages overlap somewhat: we are talking about the length of time that has passed since the event happened, which of course is also the length of time during which the event has not happened.

In does convey the sense of regularity, interrupted regularity in the negative case. For example, if someone belatedly wishes you a happy birthday, you might (sourly) say, "It hasn't been my birthday for two weeks."

In that context, "in" would suggest you are somehow surprised or disappointed that your birthday has not spontaneously reoccurred in that time -- a usage that might be deployed humorously to take the sting out of the remark.