Free Spanish grammar exercise on hace and desde hace for expressing duration. 10 sentences, intermediate level.
📚 Quick grammar review
📌
Hace + time + que — how long something has been going on — To express how long an ongoing action has been happening, Spanish uses: Hace + period + que + present tense verb: Hace tres años que vivo en Madrid (I have been living in Madrid for three years). Crucially, Spanish uses the present tense where English uses a perfect tense.
🔧
Desde hace — same meaning, different word order — Desde hace + time period expresses the same idea but comes after the verb: Vivo en Madrid desde hace tres años. Desde alone (without hace) is used with a specific point in time: Vivo aquí desde 2019 / desde enero. The choice between them is a matter of style.
💡
Hace + time for completed past actions — When talking about how long ago something happened (completed, not ongoing), use hace with the preterite tense and no que: Llegué hace dos horas (I arrived two hours ago). Or with que: Hace dos horas que llegué. The tense (preterite vs present) signals past completion vs ongoing.
✨ Ready to practice? ¡Vamos!
Choose whether each sentence requires the word(s) DESDE, DESDE HACE, or HACE.
1. Vivo aquí ________ seis meses. = I've been living here for six months.
Correct answer: desde hace
2. La vi ________ dos semanas. = I saw her two weeks ago.
Correct answer: hace
3. La vi ________ la sala. = I saw her from the living room.
Correct answer: desde
4. La conozco ________ siete años. = I've known her for seven years.
Correct answer: desde hace
5. Fuimos ________ Barcelona hasta Sevilla. = We went from Barcelona to Sevilla.
Correct answer: desde
6. ________ dos meses estuve bien enfermo. = I was pretty sick two months ago.
Correct answer: Hace
7. Canto ________ mucho tiempo. = I've been singing for a long time.
Correct answer: desde hace
8. ________ dos horas que no funciona. = It hasn't been working for two hours.
Correct answer: Hace
9. No funciona ________ dos horas. = It hasn't been working for two hours.
Correct answer: desde hace
10. Te voy a llamar (por teléfono) ________ el aeropuerto. = I'll call you from the airport.