I have always learned that it is best to use the construction:

Hace tres años que corro.


Corro desde hace tres años.

or EDIT (lentic catachresis)

Llevo tres años corriendo.
Vengo corriendo desde hace tres años.

Is there a subtle difference in meaning with this:
(since it is a direct translation in the preterite perfect progressive) ?

He estado corriendo desde hace 3 años.

EDIT: Changed from desde to desde hace here.

Does it mean the exact same thing, but just not used as much? It seems to me they both describe a past event that continues in the present. Does desde hace work here?


5 Answers 5


The two forms that you have work well with your edits.

The different ways you can talk about how long something has been going on are:

  • Llevo [período] haciendo algo…
  • Llevo [período] en hacer algo…
  • He estado haciendo algo por [período] (and I'll keep doing it)
  • He estado haciendo algo desde hace [período] (and I'll keep doing it)
  • Hago algo desde hace [período]
  • Es/son [período] ya que hago algo (strong emphasis on length)
  • Estoy en hacer algo por [período] (but I'm not done yet)
  • [período] ha que hago algo (very formal)
  • Vengo haciendo algo desde hace [período] (rioplatense)

That list is of course nonexhaustive. There are probably many other ways that don't immediately come to my mind and all have some slight difference in meaning/usage, though effectively synonymous.

Your thoughts on using tiene (in one of your comments) probably comes from the ha usage. Portuguese uses this one as the normal construction (Tres anos há que faço algo) but curiously Brazilian Portuguese, which generally avoids haver, substitutes with ter (Tem três anos que faço algo). Perhaps you heard a Portuñol expression that was Tiene tres años que hago algo or similar, but it'd definitely not be considered Standard Spanish.

  • 1
    @Jonathan, you might mark this answer (or any other) as accepted.
    – Rodrigo
    Apr 10, 2015 at 13:53
  • "Faz três anos que faço algo" is also usual in Brazilian Portuguese. Oct 24, 2019 at 22:18

Antes que nada, dos alternativas:

Llevo tres años corriendo.


Vengo corriendo desde hace tres años.

La segunda puede acusar un cierto regionalismo rioplatense, no me doy bien cuenta.

"He estado corriendo desde tres años" no está bien. A lo sumo podría ser "He estado corriendo desde hace tres años": esta es una frase gramaticalmente correcta pero que se me antoja artificial.

  • Could you also use "tiene + time"? I thought I have seen that somewhere. "Corro tiene tres años."
    – Jonathan
    Apr 4, 2015 at 21:01
  • @Jonathan: no, that's not a correct sentence. Apr 4, 2015 at 21:38

In my opinion, the best one is

Llevo tres años corriendo.

It's the more natural way to say it! However

He estado corriendo desde hace tres años

Is fine too, but it gives an idea of "I will keep on running".


I think it depends heavily on the context. The first two options mentioned seem to me to be correct in a reasonable sense. The rest of the choices seem to me a bit comical without a context (as if you were saying it WHILE you were running).


llevo tres años corriendo

Makes sense and more natural than the other ones.

He estado corriendo desde tres años

Does not make sense but you could say

He estado corriendo durante tres años

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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