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.
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.
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 (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).
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.
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á (fechado)" vira ago.