Três palavrinhas curtas, três formas de falar de tempo — e uma confusão danada quando a gente traduz direto do português. A boa notícia é que cada uma tem um trabalho bem definido: for mede a duração (quanto tempo durou), since marca o ponto de partida (desde quando começou) e ago mede a distância até agora (há quanto tempo, no passado). Vamos separar cada uma com calma.
For: duração (quanto tempo)
Use for quando quiser dizer o tamanho de um período — um punhado de horas, dias, anos. Ele responde à pergunta "por quanto tempo?". Pense num cronômetro contando: o que importa é a extensão, não quando começou.
Exemplo: I have lived here for five years. (Eu moro aqui há cinco anos.) O foco está no tamanho do período: cinco anos.
Um detalhe que pouca gente conta: for não é exclusividade do Present Perfect. Ele mede duração em qualquer tempo verbal — quem diz se a situação continua ou já acabou é o verbo, não o for:
I have lived here for five years. (Moro aqui há cinco anos — e ainda moro.)
I lived there for five years. (Morei lá por cinco anos — capítulo encerrado.)
Since: ponto de partida (desde quando)
Use since para marcar o momento exato em que algo começou e continua valendo até agora. Ele responde à pergunta "desde quando?". Depois de since vem sempre um ponto no tempo — uma data, um horário, um ano, um evento.
Exemplo: I have lived here since 2019. (Eu moro aqui desde 2019.) Repare que for e since costumam aparecer com o Present Perfect, porque falam de algo que começou no passado e segue até o presente. E quando a ênfase está na atividade em andamento, a dupla acompanha o Present Perfect Continuous: She has been working since 8 a.m. (Ela está trabalhando desde as 8h.)
O truque para não errar:
for + período de tempo (two hours, three days, ten years).
since + ponto no tempo (Monday, 2019, 8 a.m., yesterday).
Se dá para colocar "por" na frente em português, é for. Se dá para colocar "desde", é since.
Ago: distância até agora (há quanto tempo)
Use ago para dizer há quanto tempo algo aconteceu, contando a partir de hoje para trás. A diferença mais importante é a posição: ago vem depois do período, não antes, e anda de mãos dadas com o Past Simple, porque a ação já terminou.
Exemplo: I moved here five years ago. (Eu me mudei para cá cinco anos atrás.) Compare com o for: "I have lived here for five years" (ainda moro) versus "I moved here five years ago" (a mudança foi um evento fechado no passado). Para perguntar, a fórmula é How long ago...?: How long ago did you move here? (Há quanto tempo você se mudou para cá?)
A pegadinha brasileira
Em português, a gente usa "há" para tudo: "moro aqui há cinco anos" e "me mudei há cinco anos". Por isso o brasileiro tende a usar a mesma palavra em inglês nos dois casos — e aí escorrega. Lembre-se: se a situação continua até agora, é for (I have lived here for five years). Se é um evento terminado no passado, é ago (I moved here five years ago). E cuidado com a posição: nunca diga "ago five years" nem "since five years" — o certo é five years ago.
Teste rápido
Cronômetro, ponto de partida ou contagem para trás? Decida sem olhar as seções acima.
1. Complete: We've known each other ___ 2015. ver resposta
since — 2015 é um ponto no tempo, o momento em que a amizade começou: since 2015.
2. Complete: I have worked here ___ six months. ver resposta
for — six months é um período, o tamanho do tempo: cabe um "por" na frente, então é for.
3. Corrija o erro: "I met her since two years." ver resposta
I met her two years ago. — conhecer alguém é um evento fechado no passado: período + ago, com Past Simple.
4. Traduza: "Cheguei há dez minutos." ver resposta
I arrived ten minutes ago. — a chegada já aconteceu e terminou: distância até agora, com ago depois do período.
Resumo
- for = duração de um período; responde "por quanto tempo?" (for two hours).
- since = ponto de partida que segue até agora; responde "desde quando?" (since 2019).
- ago = há quanto tempo no passado; vem depois do período e usa Past Simple (five years ago).
- Regra de ouro: "por" vira for, "desde" vira since, e "atrás / há (evento fechado)" vira ago.