Skip to content
EveryLingua All languagesDictionary
EN
All 140 topics

Alphabet and pronunciation

Alphabet and pronunciation

Tenses: present, past, future

The present tense

The past

The future

Verbs: ser, estar, subjunctive

Ser, estar and hay

Can, must, want

Requests and commands

The subjunctive

Conditional sentences

The passive

Nouns, articles and adjectives

Nouns and articles

Adjectives

Pronouns

Prepositions

Sentence structure

Questions and negation

Subordinate clauses

Style and fine points

Fine points and style

B1  ·  The past

Present perfect or preterite?

If the stretch of time reaches today, the perfecto is used.

At a glance

Remember
If the stretch of time reaches now, the perfecto — otherwise the indefinido.
When

Which form when — Topics that explain not one form but the choice between two.

Form
Hoy he trabajado mucho.today
Signal words
  • hoy
  • esta semana
  • ya
  • todavía no
  • alguna vez
Trap
Wrong:Ayer he comido en un restaurante nuevo.
Right:Ayer comí en un restaurante nuevo.

Your turn

5 exercises on this topic. Your answers are checked in the browser; none of them leaves your device.

Now write it yourself4 sentences on this topic, typed and checked instantly.

The form

How the forms are built

Each row gives the meaning first, then the form in Spanish. The colours show what changes from one form to the next.

stem (regular) tense marker person ending ending for tense and person auxiliary verb negation question marker

todayHoy he trabajado mucho.
this weekEsta semana hemos tenido suerte.
yesterdayAyer trabajé mucho.
a yearEn 2019 viajé a Perú.
already / not yet¿Ya has comido? — Todavía no.
life experienceNunca he estado en Asia.
trabajar, Perfecto: I have worked(yo) he trabajado
you have worked(tú) has trabajado
he, she has worked; you (formal) have worked(él, ella, usted) ha trabajado
we have worked(nosotros) hemos trabajado
you (plural) have worked(vosotros) habéis trabajado
they have worked; you (formal) have worked(ellos, ellas, ustedes) han trabajado
trabajar, Indefinido: I worked(yo) trabajé
you worked(tú) trabajaste
he, she worked; you (formal) worked(él, ella, usted) trabajó
we worked(nosotros) trabajamos
you (plural) worked(vosotros) trabajasteis
they worked; you (formal) worked(ellos, ellas, ustedes) trabajaron

The rules one by one

The form this topic is aboutThe word that calls for it

  1. If the stretch reaches today, the perfecto is used.

    Este mes he leído tres libros.I have read three books this month.

  2. If the stretch is closed, the indefinido is used.

    El mes pasado leí tres libros.I read three books last month.

  3. ya, todavía no and nunca pull the perfecto after them.

    Todavía no he terminado.I have not finished yet.

  4. An experience with no time expression takes the perfecto.

    ¿Has estado alguna vez en México?Have you ever been to Mexico?

Example sentences

Hoy me he levantado temprano.I got up early today.

Ayer me levanté tarde.I got up late yesterday.

Nunca he probado el sushi.I have never tried sushi.

El verano pasado fuimos a Grecia.We went to Greece last summer.

6 more example sentences

Esta mañana he perdido el autobús.I missed the bus this morning.

En 1999 se mudaron a Madrid.They moved to Madrid in 1999.

¿Ya has hablado con él?Have you spoken to him yet?

Anoche cenamos muy tarde.We had dinner very late last night.

Este año no he viajado nada.I have not travelled at all this year.

Hace dos años cambié de trabajo.I changed jobs two years ago.

The trap English speakers fall into

Watch out

This page is where English helps most, and it still trips people up in one place: Latin America uses the indefinido where Spain uses the perfecto, so Hoy comí tarde is perfectly normal in Mexico. In Spain it is Hoy he comido tarde. Both are correct Spanish; only mixing them within a text is not.

Wrong:Ayer he comido en un restaurante nuevo.
Right:Ayer comí en un restaurante nuevo.

The full explanation

Read it all · about 1 min

Both forms tell of something finished. The difference is the stretch of time: if it reaches into the present, the pretérito perfecto is used — hoy, esta semana, este año, últimamente, ya, todavía no. If it is closed, the indefinido — ayer, el año pasado, en 1998. English draws the same line, which is the best help on this page.

So Hoy he comido tarde is right and Ayer he comido tarde is wrong: «yesterday» is outside today's stretch — just as «I have eaten late yesterday» is wrong in English.

With no time expression it depends on whether the consequence is still felt: He perdido las llaves means I do not have them now. Perdí las llaves reports an event from back then.

How well do you know this topic?

Next on the path: 103 · Past participle: hecho, dichoBack to the learning path

The verbs on this page, in every form: haber · pasar · leer · levantarse · estar · terminar · probar

Related topics