If someone tells you that you look tired?
What do you say?
1- I haven't slept well.
2- I didn't sleep well yesterday.
English Language Learners Stack Exchange is a question and answer site for speakers of other languages learning English. It only takes a minute to sign up.Sign up to join this community
You could say either.
"I haven't slept well" could mean that you didn't sleep well last night or for several nights. As another person explained, it doesn't imply a timeframe.
I would add that the seemingly similar phrase, "I haven't been sleeping well", actually means something different from "I haven't slept well." This is because "I haven't been sleeping well" has a timeframe. It implies that you haven't slept well in at least 3 or so days.
"I didn't sleep well yesterday" means that you only slept badly last night. Although this phrase isn't technically incorrect, and virtually every English speaker would understand it, I would suggest saying "I didn't sleep well last night" because this is more similar to what a native speaker might say.
I can't think of any time or way I would ever say "I haven't slept well." If it's been a problem for some time, I would use present perfect continuous:
I haven't been sleeping well.
If it was just the one sleep period, I'm simply say:
I didn't sleep well.
I might add "last night" (although it's already implied), but "yesterday" is odd, unless you are someone who sleeps during the daytime.
I believe that the difficulty with present perfect in the negative is that it is often used to mean you have never done something. For example:
I haven't seen the pyramids.
Means you have never seen them. So saying you haven't slept well could mean that you have never slept well in your entire life. But even if that's what you are trying to say, it's very ambiguous. It leaves me wondering what you mean, anyway. I might use the present perfect if I put an actual time boundary on it:
I haven't slept well, lately.