Here are the two same situations where you say something based on the results that you see. But one is said present perfect continous and the other is not.

"It has been raining." (Ok, you use this tense, because wake up in the morning, and look out of the window, and you see that the ground is wet, so you see the result.)

But then why can't I say "Oh, you have been having a haircut." when I see my friend in the street with shorter hair. (I see the result, his hair changed, it is shorter now)

Why is that really?

  • I guess the haircut basically happens at one localised point in time whereas the raining generally happens over a short time period. Commented Jan 29, 2023 at 16:49
  • 2
    Getting a haircut is much more common than having a haircut in my experience.
    – barbecue
    Commented Jan 29, 2023 at 17:44
  • 1
    Ignoring the grammatical aspect, verb forms involving ‘have/has been having’ are particularly uncommon in vernacular English. It’s not that they’re universally bad or anything, people just don’t use them much. And, as a general rule, you should avoid using uncommon verb forms unless there is no other way to express what you are trying to say (this applies to any language, not just English). For this particular case ‘were/was having’, ‘had’, or ‘have/has had’ are much more common. Commented Jan 29, 2023 at 22:40
  • Re your friend in the street: I can see you've been eating candy. BUT: Oh, I see you've had a haircut.
    – Lambie
    Commented Jan 30, 2023 at 18:24
  • @AustinHemmelgarn That is simply not true. "Naw, man, I've been keeping track of him, ya see."
    – Lambie
    Commented Jan 30, 2023 at 18:37

7 Answers 7


But it's fine to say it under some circumstances. For example, if you've seen your friend with longer hair and then were unable to contact them for a while, but then when you meet them you notice their hair is shorter, you might say:

"Why haven't you been answering your phone...? Oh, you have been having a haircut."


  • 3
    I like this answer. Other answers concentrate more on how to choose the correct form for what the person is probably trying to say. But these kinds of mistakes do not violate rules of grammar, so they are not clear-cut errors. They are wrong because they convey something subtly different from what is intended. Explaining what the mistaken utterance actually conveys to a native speaker is a valuable teaching technique.
    – David42
    Commented Jan 29, 2023 at 0:21
  • 6
    @David42 I feel that English handles well that type of situation with the Past Continuous: "Why haven't you been answering your phone...? Oh, you were having a haircut." The person was unable to respond to one or more calls because their hair was being cut . P.S You can talk to someone on the phone while getting your legs waxed or your hair cut. :)
    – Mari-Lou A
    Commented Jan 29, 2023 at 10:02
  • 1
    Weirdly, I would structure it as "Oh, you've been having your hair cut". Which is a sort of homophone. But while "a haircut" is something that occupies a finite period of time, having your hair cut is like a lifelong hobby. Maybe that's why I find the assumption that this sentence "isn't ok" a little...black and white (which English never is - or doesn't tend to be).
    – Pam
    Commented Jan 30, 2023 at 17:07

When an action has ended and is unlikely to be repeated on the same day, the Present Perfect tense is often used.

You've had a haircut. Short hair suits you!

The Present Perfect Continuous is used for actions that are either still in progress or have recently ended.

a) He's answered several emails this morning. OK
b) He's been answering emails since this morning. OK

Sentence b) suggests the act of writing emails has either finished, i.e he doesn't need to answer any more emails or it will continue during the day; context will tell us which situation it is.

  • 2
    In the U.S., the idiomatic version of your third example would treat "email" as a mass noun, so it would be "answering email".
    – Jasper
    Commented Jan 28, 2023 at 9:08
  • 4
    @yunus you wouldn't use the present perfect continuous for an action that might be repeated a week or a month later. You could say that someone has been having haircuts at the same barber's or hair stylist for X years.
    – Mari-Lou A
    Commented Jan 28, 2023 at 9:14
  • 7
    @yunus: You might use the "you have been having" form if the fact it's recently ended is specifically relevant. For example, if your friend is late to meet you: "Why are you late? Oh, I see: you've been having a haircut!". The continuous form of the verb emphasises the duration over which it occurred. Normally with a haircut that's happened, we consider it as a single event, and so don't use a continuous verb form, but in this example you want to emphasise "you've been having a haircut for all the time while I was waiting".
    – psmears
    Commented Jan 28, 2023 at 21:45
  • 3
    @Jasper In my idiolect (native speaker of General American here), I can certainly say "answering emails" as well as "answering email". Both work fine. If I say "answering email", it feels more abstract and generalized; but with "answering emails", I get a sense of specificity about the types of emails they are (or perhaps the recipients themselves). Commented Jan 28, 2023 at 23:12
  • 2
    @psmears Here's my comment which I posted earlier: I feel that English handles well that type of situation with the Past Continuous: "Why haven't you been answering your phone? Oh, you were having a haircut." The person was unable to respond to one or more calls because their hair was being cut. P.S You can still talk to someone on the phone while getting your legs waxed or your hair cut.
    – Mari-Lou A
    Commented Jan 29, 2023 at 10:52

A guess:

It has been raining is appropriate for two reasons:

  • "Raining" continues for quite some time. Usually for hours.
  • "Raining" is likely to occur intermittently. The fact that it rained overnight enough to have visible effects suggests that there might be more rain in the morning. Thus, the state of "it is raining [intermittently]" might well be continuing.

Whereas your friend had their hair cut. "Getting your hair cut" takes about half an hour. For purposes of this type of conversation, it is a state change (between the time of the previous conversation and the current conversation), not an ongoing process.

  • 5
    but you can say "you have been swimming" if you see your friend with wet hair even if he swam only for 10 minutes . So it is not a question of how long does the action last
    – Yves Lefol
    Commented Jan 28, 2023 at 8:54
  • 2
    @user5577 — Perhaps it is a matter of the ratio between how long the process took (or is taking) vs. how long the effect lasts. A haircut takes half an hour, and lasts a month. Ten minutes of swimming will leave your hair wet for an hour or two, so "you have been swimming" is talking about something that is very recent.
    – Jasper
    Commented Jan 28, 2023 at 8:58
  • 1
    If you see your friend with wet hair you don't know how long the swimming session lasted - he could have been in the water all morning.. A haircut is a procedure that takes a limited amount of time and has a definite end. Commented Jan 28, 2023 at 9:14
  • 2
    Also, go swimming and go shopping have the sense 'go to a place for the purpose of doing something' as much as implying the continuous tense. Commented Jan 28, 2023 at 9:42
  • 2
    Not perhaps the length of the process but the intensity (must be a better word) of the process. Having a haircut just involves sitting down, letting the barber do his work, and getting up again (That is, as far as I know; you might have had a really interesting conversation with the barber!) Going shopping is rich with incident
    – Philip Roe
    Commented Jan 28, 2023 at 17:27

The sentence "It has been raining" makes it sound like the rain isn't necessarily finished. Maybe it rained a little bit yesterday evening, and then it rained a little bit more early this morning, and maybe it will rain some more later today.

Likewise, the sentence "You have been having a haircut" makes it sound like the haircut isn't necessarily finished. Maybe your friend had the left side of his hair cut on Tuesday, and he had the back cut yesterday, and he's going to have the top cut later today.

Of course, that's a very strange way to get a haircut! Most people have one entire haircut, from start to finish, in one sitting. So the sentence "You have been having a haircut" describes a very unusual situation, so it's unlikely that you would ever say it.

On the other hand, the sentence "You have had a haircut" implies that at some time in the recent past, the haircut started and then the haircut finished. That's the normal way to have a haircut, so that's a normal sentence.

(Likewise, the sentence "It has rained" would make it sound like the rain started, and then the rain stopped, and so the rain is now finished.)


Been having with a noun in particular suggests a repeated or habitual action:

I have been having nightmares. (Over a period of many nights.)

She has been having bad luck. (In many recent games, or on many recent die rolls.)

We have been having a lot of rain lately. (Over a period of many days.)

If you apply the 'have been having' construction to getting one's hair cut, you would have to use the plural:

You have been having haircuts. (But you always hated going to the barbershop!)

But of course this is not the same as noticing someone's most recent haircut.

  • No, I see you've been having fun, eating candy, swimming today. Those actions are not habitual.
    – Lambie
    Commented Jan 30, 2023 at 22:48
  • @Lambie "You've been having fun" is a good counterexample, but I don't think the others are instances of been having with a noun.
    – Muskworker
    Commented Jan 31, 2023 at 6:03
  • If a person has the remnants of, say, chocolate or candy cane on their face/chin, it works fine. If the person is known to swim and shows up with wet hair and holding their wet bathing suit, it also works.
    – Lambie
    Commented Jan 31, 2023 at 16:30
  • @Lambie I don't see it, unless you are thinking about constructions other than been having. "You've been having eating candy" is extremely unusual to my ear. Here we might say "You've been eating candy" instead, without the been having —or make it a noun to refer to repeated action, e.g. "You've been having swimming lessons..." I am finding other exceptions though, like one from outside my dialect: "they've been having a laugh tonight", so I might need a more specific way to describe this than my answer.
    – Muskworker
    Commented Jan 31, 2023 at 20:35
  • You must be kidding about that been having eating candy. Are you really saying that to me? You've been having a good time, I see.
    – Lambie
    Commented Jan 31, 2023 at 20:42

The normal thing to say is "You got a haircut!"

This differs from "You have been having a haircut!" in 3 ways:

  1. get vs. have: Typically you get a haircut, rather than have a haircut.
  2. were getting vs. got: You were getting a haircut? Oh, that's why you couldn't take my call.
  3. have been vs. were: You have been getting a haircut? Oh, in that case your high pulse is probably due to your aichmophobia.

#1 uses "get" rather than "have" because it is more standard. This is best learned case by case (as a phrase) for common activities. You get a haircut, get exercise, have (or go for) a swim, have fun, get or have a meal, get or have rabies, etc. The distinction between "get" and "have" (when both are possible) can depend on the thing being gotten or had, so there is no universal rule. There are probably regional variations too.

#2 uses "were getting" because it focuses on a point in time in the past (indicated by "were"), which happened during the activity (marked by "-ing"). It helps set the scene for the point in time under discussion. In the example above, the point in time being discussed is when I called.

#3 uses "have been" to focus on a duration (perhaps intermittent) of recent time. The only specific time point being referenced is "now" (because "have" is in the present). It is a statement about now, describing the current state as the expected result of the thing that has been going on. In the example above, the current state is the high pulse rate, which is a predictable result of the activity of getting a haircut if scissors make you panic.

When does it make sense to use the present perfect continuous for a haircut?
First of all, if the activity is still going on, but we mainly want to emphasize that it has been going on for a while already, then the present perfect continuous is exactly right. "Where are you now?" "I told you, I'm getting a haircut." "Still? You've been getting a haircut for two hours!"

If the activity has stopped, then it becomes much harder to make a realistic example for "have been getting a haircut". How could we have a statement about the current point in time, that needs, as context, the information that for a recent duration of time you were receiving a haircut? Is there anything that happens during a haircut, such that if that thing has been happening, then we will see a result now? The obvious "hairs were being cut" does not make a good example -- nobody would use a complicated, wordy tense just to avoid communicating that one entire haircut took place, when in fact it did. There needs to be an activity which was going on, which we don't think of as encapsulated into a stand-alone instance, which led to things being how they are now. For example if you are afraid of scissors, then maybe you were getting more and more stressed out during the haircut. If we're focusing on your stress, it doesn't even matter whether the haircut got finished or not. The point is just that it was an activity involving scissors. If I know you well and I see you are sweating and I measure your pulse and it is very high, I might start to worry, but if I suddenly realize what the cause was, I might express this with "Oh! You've been getting a haircut!" Saying it this way shows that I am focused on the ongoing activity that was recently taking place, and on how that activity relates to the present state of affairs.

This is similar to your rain example. As you point out, in both examples, there was something happening, and now you see the result. The thing that was happening is being described as a type of thing that can happen off and on, and recently it was happening. It is not being described as a complete single instance of anything. But if the precipitation in your region consists of isolated 20-minute downpours that only happen once a month or so, then you wouldn't say "Oh, it's been raining," but rather, "Oh, we had a rainstorm!", because you would be thinking of the wet ground's cause as a single encapsulated event. This is analogous to "Oh, you got a haircut!"


Personally, I think that the reason is that idiomatic speakers unconsciously prefer "haircut" in the sense of the shape of someone's hair over "haircut" in the sense of the process of getting your hair cut.

I also wouldn't think to say "the footpath has been getting wet" (due to rain) over "the footpath has gotten wet". The change in status is what I am observing, not the process that occurred to make it happen.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .