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.
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.
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.
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.
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