Please let me know the difference between here two sentences:

I have smoked for three years.


I have been smoking for three years.

Also if it started raining hours ago and now it doesn't (it has just stopped), can I say "It just rained for hours"? How should I say properly?


I have smoked for three years.

This talks about the past event of smoking. But it does not exactly says when. Today, if you say this to me, I'd understand that in past for any three years you smoked. Could be 2000-2003, 1990-93 or whichever 3 years you can guess.

I have been smoking for three years

... means the smoking is continued and it has been three years i.e. you started smoking in October 2012 (three years from now in past).

And yes, you can say that for rain.


You may want to learn further on 'progressive tenses'. For this question, read here for past perfect progressive, here for past perfect and here for present perfect progressive.

  • 1
    Thank you. I get it clearly. But if I've just stopped smoking today then how should I say to indicate that I started smoking in October 2012 but from now on I won't smoke anymore? I mean, is there a brief sentence to say that? – gnoulv Oct 16 '15 at 6:44
  • @maulik, you could edit it to add the tenses aspect...progressive etc. – Mamta D Oct 16 '15 at 6:46
  • @maulik : How the first one is different from "I smoked for three years"? – 5A7335H Oct 16 '15 at 6:47
  • If you stopped it today, you may say - "I had been smoking for three years till yesterday*". If you put 'have' it connects it to the present time i.e. 'at present'. – Maulik V Oct 16 '15 at 7:03
  • @MamtaD okay, added. – Maulik V Oct 16 '15 at 7:05

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.