What's the difference between
I have been playing tennis for five years.
I have played tennis for five years.
Are they grammatically correct? If yes, how are they different in meaning/nuance?
I agree with Vic, and would like to add a little more information.
The main point of the question is the difference between the tenses of "have been playing" and "have played". In addition to the tenses, we have the verb "play (tennis)", which is a dynamic verb (dynamic verbs have duration; they occur over time), and we also have the time phrase "for five years".
Different combinations of verb, tense, and time phrase will allow different ranges of possible readings.
Let's consider the first sentence:
(1) I have been playing tennis for five years.
The tense is the perfect progressive tense. The time phrase indicates the duration (five years). The combination of the tense and the time phrase forces us to read it as: "I have been playing tennis for five years now." This gives us the reading that the activity has been going on for five years up until now. It also implies that the activity will keep continuing, at least in the immediate future.
(2) I have played tennis for five years.
The tense is the simple perfect tense. The time phrase is, again, for five years. However, the sentence is different from (1). It doesn't force us to read the time part as "for five years now". It's unclear exactly when in the past that the speaker have played tennis. All we know is it happened before now, at least five years before now. (In other words, it's possible to read the sentence as "At some point in my life, I've played tennis for five years.") It's unclear whether it has ended or not. It's also possible that it's been continued up until now, and possibly will continue into the future. The speaker says nothing explicitly, so we have a wider range of possible readings.
Having said that, the preferred reading, out of context, is: "I have played tennis for five years now." Which means about the same thing as (1). When we read both alternatives as "for five years now", the difference is really small. To demonstrate such a small difference, these examples can be helpful:
How long have you been playing tennis?
I've been playing tennis for five years.
Do you know how to play tennis?
Of course, I've played tennis for five years.
I hope this helps to clarify the difference!
Both sentences are correct and mean the same thing. The only difference is that we use:
the present perfect, "I have played tennis for five years.", to put emphasis on the action, and we use the present perfect continuous, "I have been playing tennis for five years." to put an emphasis on the duration of the activity.
Thank you for your interest in this question.
Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?