Hi, I've this problem with prepositions used in present perfect. When do we use 'in' and 'for'? For example I can say "I haven't seen her in a while" but I can also say "I haven't seen her for weeks". Or maybe I'm wrong? What's the rule for these prepositions? Thanks
The prepositions don't depend on the case, they depend on the time.

I'm afraid there aren't rules, because the formatin is rather idiomatic. You have to learn them each in their own context.

I was born in 1966. I was born in May. I was born on the 23rd. I was born at 11:41 at night: In for year and month, on for date, at for time... you can see it's variable.

"For weeks" means a duration of a few weeks. "In a few weeks" means at the end of a few weeks.

"I'll be away for a while" means for some undetermined period, I will be gone. "I'll go away in a while" means after some undetermined period, I will leave.

Invest in Bitcoin on the World's Leading Social Trading Network

Join millions who have already discovered smarter strategies for investing in Bitcoin. Learn from experienced eToro traders or copy their positions automatically!

I'm afraid sympathy is about all I have to offer. The problem isn't restricted to the present perfect. I've spent a lifetime learning which prepositions go with which other words on a case by case basis. My brief experience on this site has taught me how difficult it is to generalize about prepositions.

For example, you can reverse the prepositions in your two examples with no change in meaning. (I haven't seen her for a while. I haven't seen her in weeks.) Both are commonly used.

In other examples there might be a slight change in meaning. In still others, the switch would not be allowed, although logically you'd say it should. My feelings are the same as yours. My feelings are similar to yours. My feelings are the same to yours. My feelings are similar as yours. (The last pair would not be allowed.)

I think you just have to learn the applicatations one by one. Perhaps someone on the team can give you better advice.

- A.

Edit. (just saw GG's post) If you swap in and for in her last two examples, "I'll go away for a while" is a very common expression with a new meaning. "I'll be away in a while" is logically possible, but unheard of.
Try out our live chat room.
Well, I didn't ask about all prepositions. I just wanted to know what was the difference between 'in' and 'for' using present perfect. You gave me really easy examples on using 'at' (11:41) and 'in' (1966) but that was basics. I still don't know if I can use 'in' and 'for' alternatively. I mean, I heard a phrase like "I haven't seen her in years". I guess I could say "I haven't seen her for years" with no change in meaning at all. Am I right?
Site Hint: Check out our list of pronunciation videos.
I heard a phrase like "I haven't seen her in years". I guess I could say "I haven't seen her for years" with no change in meaning at all. Am I right?
Yes, that's right.

It seems to me that for is the general purpose preposition for this situation.
In contrast in seems to be associated with non-assertive contexts, and (slightly) preferred there.

So I've done that for years is possible but *I've done that in years is not.
I haven't done that for years and I haven't done that in years are both fine.

You might say I've struggled with this problem for months, but not *I've stuggled with this problem in months.
Sentences like It's the only one I've seen in years are fine. It is not an assertion of 'seeing it for years'. It's non-assertive.