"Have been having classes" or "have had classes for three months"?

Which sentence is correct:

"I have been having classes for three months."

or

"I have had classes for three months."


Solution 1:

The following sentences have two distinct but related tenses. Though people may be tempted to say the sentence with having is the continuous one, they'd be mistaken. In fact, they're both in a continuous tense!

  • I have been having classes for three months.
  • I have had classes for three months.

So how do they differ? Let's illustrate with their non-continous forms.

  • I have read that book several times.
  • I had read that book before.

Here the difference seems, though trivial, obvious. First, the tenses are different, but the sentences also changed to conform to the tense. The first sentence is in the present perfect tense. This tense expresses that something already happened at an unspecified time before now and its form is [has/have + past participle]. The second sentence is in the past perfect tense. This tense expresses that something occured before another action or time in the past and its form is [had + past participle]. Now let's look at the continous forms.

The form of present perfect continuous is [has/have + been + present participle] and expresses, like the present perfect, that something happened at an unspecified time in the past BUT, unlike the present perfect, it is an event that has continued up until now. The form of past perfect continuous is [had been + present participle] and expresses, like the past perfect, that something occurred before BUT, unlike the past perfect, it is an event that has continued up until another time in the past.

So, to summarize what I've said in simple terms:

I have been having classes for three months.

says that you started classes in the past and are continuing them into the present, which is three months after you started.

I have had classes for three months.

says that you started classes in the past and continued them, as opposed to dropping out, in the past until a total length of three months.

These sentences don't seem too different because a specific time length is specified (for three months) However, the second sentence seems to imply that you will drop out of the classes now since you've already assigned it as an event in the past though you have been continuing this activity. Hope this helps ;-)

Solution 2:

You want to state a fact and so "have had" would be the normal thing. I think it is unnecessary to use the continuous form when you want to state a fact.