The Local Way to Say It
¡Hola, Madrileños en ciernes! When you want to express how long something has been going on, you'll hear locals effortlessly switch between desde hace and hace que. It’s all about perspective. Desde hace literally means 'since/from X time ago' and focuses on the duration of an ongoing action. For example, if you've been living in Malasaña for three years, you'd say: 'Vivo en Malasaña desde hace tres años.' (I’ve been living in Malasaña for three years.) Simple, right? But if you want to emphasize the time that has passed since an event, you might hear: 'Hace mucho tiempo que no vamos al Rastro.' (It's been a long time since we went to El Rastro.) Or even, 'Hace una hora que te espero en la Puerta del Sol.' (I've been waiting for you at Puerta del Sol for an hour.) Notice how hace que puts the 'time' part first, almost as an introduction to the duration. Master these, and you’ll sound like a true gato.The 'Grammar Math'
Think of it as two slightly different grammatical equations to express duration.1. For ongoing actions (How long have you been doing X?):
Subject + Verb (Present Tense) + desde hace + [Period of Time]
Example: Estudio español desde hace dos años. (I’ve been studying Spanish for two years.)
2. To emphasize the time passed (It has been X time since Y happened):
Hace + [Period of Time] + que + Subject + Verb (Present or Preterite Tense)
Example: Hace tres días que no veo a María. (It’s been three days since I saw María.)
Alternatively, for a simple 'X time ago':
Verb (Preterite Tense) + hace + [Period of Time]
Example: Llegué a Madrid hace un mes. (I arrived in Madrid a month ago.)
The key is that desde hace always couples with an ongoing action in the present, while hace que often introduces a duration that has passed since an action. Interchanging them is a common misstep, so memorize these patterns!