2

I remember my grammar teacher saying that:

If we want to tell the length of time a person has not done something, then we can use either for or in.

As in:

I haven't written a single line of code in two years, but I'm back at business again.

or

I haven't written a single line of code for two years, but I'm back at business again.>

However, I couldn't verify this from another source. Can somebody confirm it? I ask because this statement "looks" valid:

I have read at least nine books in nine months.

2
  • It is valid....
    – mplungjan
    Commented Nov 15, 2013 at 13:08
  • 1
    The two are not totally interchangeable. I haven't seen him in / for six months, but I haven't seen him once in six months. Commented Nov 15, 2013 at 15:48

2 Answers 2

3

You are correct that for and in are interchangeable* in these sentences in negative present perfect statements. I think this holds true for other past tense constructions, such as the simple past and progressive forms, as well.

The prepositions are not equally interchangeable in affirmative sentences, however. In situations where both would work, you would need either additional modifiers to make them grammatical or they would have significantly different meanings.

I have read at least nine books in nine months.

This is fine, but substituting for in this same sentence makes it weird. The weirdness is compounded by the inclusion of at least and some of the subtext. Here are some clearer examples:

  1. I have read ten books in two months.
  2. I have read ten books for two months.

These have much more difference in meaning than their negative counterparts that state that no books have been read in/for two months. Example 2 implies, to me, that one's been reading ten books simultaneously for two months of time, which example 1 doesn't imply. Example 2 is grammatical, but unusual, and for in this context makes more sense. If one wanted to state what example 2 asserts, then a present perfect progressive tense would be more expected (I have been reading ten books for two months).

Other contexts show different patterns, such as "I have eaten cheese for five days" versus "I have eaten cheese in five days." The second example here is even more unusual and I'd go so far as to call it ungrammatical. (Though if the amount of cheese is specified, interestingly enough, the weirdness is reversed in this tense with in seeming much more natural.)

This is all made more complex by the fact that the way that the time span is measured (days, months, hours, years, etc.) often affects how the prepositions interact depending on the verb tense. Different time measures in certain tenses will call for in while other measures in other tenses call for for.


*By 'interchangeable' I do not mean identical - they do still have some subtle differences in meaning, but they both equally assert that something was not done for the specified length of time.

0

You can use "for" or "in" for both things a person has done and a person hasn't done.

In my ears certain uses sound right and some don't.

These all sound fine:

I've been writing code for five months.
I've written 1000 lines of code in five months.
I haven't written a line of code in five months.
I haven't written a line of code for five months.
I haven't written code for five months.

These sound wrong:

I've been writing code in five months.
I've written 1000 lines of code for five months.
I haven't been writing code in five months.

I feel like in this usage for has to be the action on its own. In the positive sense it can't take an amount in the verbal phrase. In the negative sense I think "haven't written code" and "haven't written a line of code" have pretty identical meanings and both work. I agree with Edwin Ashworth that you can't use "once" with for.

In contrast, in sounds better with a quantity in the verbal phrase.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.