← Gramática

Present perfect: quando usar

O present perfect liga o passado ao agora: aconteceu antes e ainda importa. Em português quase nunca vira 'tenho feito' — na maioria das vezes vira presente com 'há' ou 'desde'.

A ideia, antes da fórmula

Todo mundo aprende a fórmula — have/has + particípio — e continua errando, porque a fórmula não diz QUANDO usar. O present perfect existe para dizer que algo do passado ainda tem efeito agora. O passado simples, ao contrário, fecha o assunto: aconteceu, acabou, ponto.

I lost my keys.Perdi minhas chaves.Passado simples: conta o fato. Talvez já tenha achado.
I have lost my keys.Perdi minhas chaves (e estou sem elas agora).Present perfect: o efeito continua. Estou trancado do lado de fora.

Começou antes e continua

É aqui que o português mais atrapalha. Quando algo começou no passado e ainda está acontecendo, o inglês usa present perfect e o português usa PRESENTE. Traduzir ao pé da letra produz frases que ninguém fala.

I have lived here for five years.Moro aqui há cinco anos.Repare: 'moro', presente. Não 'tenho morado'.
She has worked at the school since 2019.Ela trabalha na escola desde 2019.

For e since, que não são a mesma coisa

For mede a DURAÇÃO: for two hours, for a week, for ten years. Since marca o COMEÇO: since Monday, since 2019, since I was a kid. Em português os dois costumam virar 'há' e 'desde', e é fácil trocar.

for three dayshá três dias (duração)
since Tuesdaydesde terça (começo)

Quando NÃO usar

Se a frase diz quando aconteceu — ontem, em 2010, na semana passada — o present perfect está errado. Momento definido no passado pede passado simples, sem exceção. É a regra que mais salva prova.

I have seen him yesterday.✗ errado'Yesterday' fecha o tempo. O certo é: I saw him yesterday.

O erro que o português faz a gente cometer

Estes não são descuidos: são o português funcionando direito e puxando a frase para o lado errado. Saber de onde vem o erro é o que faz ele parar.

I have lived here since five years.

I have lived here for five years.

Em português 'há cinco anos' e 'desde 2019' usam palavras diferentes, mas a gente sente as duas como 'faz tempo'. Em inglês a diferença é dura: cinco anos é duração, então for.

I have finished the work yesterday.

I finished the work yesterday.

Vale a regra do momento definido. Havendo 'yesterday', o tempo está fechado e o present perfect não cabe — mesmo que o resultado ainda importe.

Eu tenho morado aqui há cinco anos.

Eu moro aqui há cinco anos.

Este é o caminho inverso, e denuncia o problema: 'tenho morado' em português significa repetição recente, não continuidade desde 2019. Quem traduz present perfect por 'tenho + particípio' acaba escrevendo português errado também.

Teste rápido

1. She ___ in Recife since 2018.lives · has lived · lived · is livingVer resposta

has livedComeçou em 2018 e continua: present perfect. 'Since' marca o começo.

2. I ___ that movie last night.have watched · watched · have watch · am watchingVer resposta

watched'Last night' é momento definido no passado — passado simples, sempre.

3. We have been friends ___ ten years.since · for · ago · duringVer resposta

forDez anos é duração, não começo. Duração pede 'for'.

Ler explicação não fixa. Errar de novo fixa.

No Lingo, este assunto vira exercício que volta quando você erra — e para de voltar quando para de errar. É de graça, e o teste de nível leva dois minutos.

Treinar present perfect

Outros assuntos