Cronómetro regressivo
Crie contagens regressivas com tempo personalizado e alertas sonoros
Definir tempo
O que é um cronómetro regressivo online?
Um cronómetro regressivo online é uma ferramenta gratuita no navegador que conta decrescentemente a partir de um tempo que define e o alerta quando chega a zero. Defina 25 minutos para uma sessão Pomodoro, 6 minutos para um ovo cozido, 45 minutos para um exame - tudo o que precise de um limite de tempo. Em vez de estar a olhar para o relógio, o cronómetro permite-lhe deixar de pensar na hora e concentrar-se totalmente na tarefa. O alarme chama-o quando a contagem termina. Sem descarregar nada, sem registos, sem carregar nada. Tudo corre no separador do navegador.
Como utilizar
Como utilizar
- Introduza horas, minutos e segundos, ou clique num tempo predefinido
- Clique em 'Iniciar' para começar a contagem e em 'Pausar' para a interromper
- Perto do fim, o visor fica amarelo e, nos últimos 10 segundos, passa a vermelho
- Quando a contagem chega a zero, toca um alerta sonoro
Notas sobre a precisão
- Os cronómetros do navegador podem pausar ou perder precisão quando o separador está em segundo plano, o dispositivo entra em suspensão ou o modo de poupança de energia está ativo.
- Para reuniões, exames ou trabalho de produção, mantenha um relógio de sistema ou um cronómetro dedicado como referência final.
Casos de utilização
Como funciona
O cronómetro não depende de setInterval para contar segundos - essa abordagem acumula desvio ao longo do tempo, porque o event loop do navegador só garante um atraso mínimo, não um ritmo constante. Em vez disso, o cronómetro regista o instante inicial com Date.now() e recalcula o tempo restante em cada frame: restante = duraçãoTotal − (Date.now() − início). Este design autocompensador significa que o tempo apresentado se mantém exato mesmo que a thread do JavaScript esteja momentaneamente ocupada com garbage collection ou cálculos de layout.
As atualizações do visor são geridas por requestAnimationFrame, que sincroniza com a taxa de atualização do ecrã (normalmente 60 vezes por segundo, ou 120 em ecrãs de alta frequência). A atualização visual é fluida, mas a medição real do tempo vem do cálculo com Date.now() - a animação serve apenas para apresentação, não para medição.
Quando o separador passa para segundo plano, os navegadores limitam agressivamente os temporizadores. Separadores ocultos podem ter o setInterval restringido a uma chamada por segundo e separadores inativos podem ser totalmente congelados ao fim de alguns minutos com a bateria. O cronómetro lida com isto verificando o relógio do sistema assim que o separador volta a ficar visível, saltando o visor para o tempo restante correto. Para o alarme final, a página utiliza a Web Audio API para reproduzir um tom curto. Isto exige uma interação prévia do utilizador (como clicar em Iniciar) antes de o áudio ser permitido - uma política de autoplay do navegador que impede sons indesejados. Se o separador estiver oculto ou o sistema em suspensão, o alarme não dispara, mas o visor mostra o tempo decorrido correto assim que regressar.
- Utiliza Date.now() para precisão de relógio de parede - recalcula o tempo restante em cada frame em vez de contar ciclos de setInterval.
- requestAnimationFrame sincroniza as atualizações do visor com a taxa de atualização do ecrã para uma apresentação fluida.
- Separadores em segundo plano são limitados pelo navegador; o cronómetro compensa com o relógio do sistema ao regressar.
- A Web Audio API reproduz o alarme e exige um gesto do utilizador (como clicar em Iniciar) antes de permitir o áudio.
- Todo o processamento corre localmente no navegador. Nenhum dado é enviado para lado nenhum.
Exemplos
Bloco de trabalho Pomodoro (25 min foco + 5 min pausa)
Duração : 00 : 25 : 00
Início : 14:00:00
Fim : 14:25:00 (toca o alarme)
Próximo : cronómetro de pausa de 5 minutos (predefinido)Cozinhar - ovo cozido (6 min 30 s)
Definir : 00 : 06 : 30
Em 1:00 -> aviso visual destaca o tempo restante
Em 0:00 -> alarme + banner na página: Tempo esgotado!Vigilância de exame - bloco de 45 minutos
Duração : 00 : 45 : 00
Início : 09:15:00
Fim : 10:00:00
Dica: deixe o separador em primeiro plano - separadores em segundo plano podem limitar o setInterval e desviar-se vários segundos ao longo de 45 minutos.Perguntas frequentes
A contagem continua se mudar de separador?
Sim. O cronómetro utiliza o relógio do sistema para medir o tempo decorrido, não os ciclos de animação. Quando regressa ao separador, o visor salta de imediato para o tempo restante correto.
O alarme toca com o separador em segundo plano?
Depende do navegador e do dispositivo. Alguns navegadores restringem o áudio em separadores em segundo plano para poupar energia. Se o alarme for importante, mantenha o separador do cronómetro visível ou numa janela própria.
O que acontece se o computador entrar em suspensão?
O cronómetro mede o tempo pelo relógio do sistema, por isso mantém-se preciso durante a suspensão. O visor atualiza-se assim que acordar o computador. Mas o alarme não toca enquanto o sistema está suspenso.
Qual é a precisão da contagem?
O visor atualiza a cada segundo, mas internamente utiliza carimbos temporais com precisão de milissegundos. Para uso diário - cozinhar, reuniões, treinos - é mais do que suficientemente preciso. Separadores em segundo plano podem perder alguma precisão devido à limitação do navegador.
Posso guardar as minhas durações predefinidas?
Já existem botões rápidos para 5, 10, 25 e 45 minutos. Para outras durações, escreva o tempo diretamente nos campos de horas, minutos e segundos.
A hora de verão afeta a contagem regressiva?
Não. O cronómetro conta segundos decorridos, não tempo de calendário. Uma contagem de 2 horas dura sempre exatamente 2 horas, independentemente das mudanças de hora de verão.
É enviado algum dado para um servidor?
Não. O cronómetro corre integralmente no navegador. Nenhum dado do cronómetro sai do seu dispositivo.