Español — Present perfect vs preterite
Both tenses describe the past, but Spanish chooses between them by time frame: the pretérito perfecto (he comido) links the action to a period still open, while the pretérito indefinido (comí) reports events in a finished time.
How it works
Use the pretérito perfecto for a period that includes now — hoy, esta semana, este año, or ya/todavía: Hoy he comido tarde, ¿Ya ha llegado el tren? Use the pretérito indefinido for a finished, disconnected time — ayer, la semana pasada, en 2010: Ayer comí tarde, En 2010 viví en Madrid.
Examples
| Example | Tense | Why |
|---|---|---|
| Hoy he comido tarde. | pret. perfecto | period including now (hoy) |
| Esta semana he trabajado mucho. | pret. perfecto | current, unfinished period |
| ¿Ya ha llegado el tren? | pret. perfecto | relevance to now (ya, todavía) |
| Ayer comí tarde. | pret. indefinido | finished time (ayer) |
| La semana pasada trabajé mucho. | pret. indefinido | closed past period |
| En 2010 viví en Madrid. | pret. indefinido | specific past date |
Good to know
The split is regional. In much of Spain the perfecto is normal even for today's events (Hoy he comido tarde), while most of Latin America prefers the indefinido and would say Hoy comí tarde. Neither is wrong — just match the variety you are learning, and don't pair the perfecto with a finished marker like ayer (never Ayer he comido).