Cores Do Ano Novo - Ano Novo Chinês começa na terça; qual é o significado do cavalo, animal ...
Ano Novo Chinês começa na terça; qual é o significado do cavalo, animal ...

Como criar e configurar uma contagem regressiva de ano novo funcionando de verdade

A maioria das pessoas que tenta colocar uma tela com cores do ano novo no ar acaba com um arquivo HTML aberto no navegador, uma planilha do Excel ou algo na cor neon que dá dor de cabeça. O problema não é a ideia. É a execução. Vou explicar como fazer isso sem perder dois dias. O que você precisa primeiro é um timer que atualize a cada segundo. Pode ser em Python com Tkinter, em JavaScript com um canvas, ou até num projeto ESP32 se quiser algo hardware. Eu já vi gente tentar fazer com CSS animations pura e só o fuso horário quebrou porque o servidor que hospedava o vídeo estava em UTC e a festa era em Brasília. Diferença de três horas no telão. Ninguém percebeu até o meio-dia.

cores do ano novo: o básico que ninguém conta

A parte técnica é simples. Você pega a data alvo — 1º de janeiro às 00h00 — e subtrai do momento atual. O resultado é o tempo restante. O que as pessoas esquecem é que isso tem que rodar em loop, senão o display congela. Já tive um caso em que o script parava de atualizar depois de 47 minutos porque o garbage collector do Python limparam as variáveis. Sim, isso aconteceu de verdade. Para evitar isso, eu uso um processo separado que roda em loop infinito com um sleep de 100ms, escrevendo o resultado num arquivo de texto ou num socket. O display apenas lê esse arquivo ou se conecta ao socket. Quando o timer para, o display não quebra, ele só mostra o último valor. Mais previsível do que tentar sincronizar threads.

Configuração prática com HTML e JavaScript

Se você quer algo rápido, um arquivo HTML com um pouco de JavaScript resolve. O código fica assim: HTML básico:

<div id="timer"></div> <script>

var alvo = new Date('2026-01-01T00:00:00-03:00'); function atualizar() {

var agora = new Date(); var diff = alvo - agora;

if (diff <= 0) { document.getElementById('timer').innerHTML = 'Feliz Ano Novo!';

return; }

var horas = Math.floor(diff / (1000 * 60 * 60)); var minutos = Math.floor((diff % (1000 * 60 * 60)) / (60 * 1000));

👉 Clique no botão abaixo para saber mais sobre o assunto!

var segundos = Math.floor((diff % (60 * 1000)) / 1000); document.getElementById('timer').innerHTML =

horas + 'h ' + minutos + 'm ' + segundos + 's'; }

setInterval(atualizar, 1000); </script>

Isso funciona. O timezone -03:00 é o horário de Brasília. Se sua festa for em outro lugar, mude esse número. Já vi gente usar UTC (+00:00) e se perguntar por que o contador mostrava 3 horas a mais do que o esperado.

Problemas comuns e soluções

O primeiro problema é o horario de verão. O Brasil acabou com o horario de verão em 2019, mas se seu evento for em Portugal ou em qualquer país que ainda usa, o contador pode pular uma hora sem aviso. Use sempre timestamps ISO 8601 com timezone explícito, nunca datas "ingênuas" sem offset. O segundo problema é a sincronização. Se você tiver múltiplas telas, cada uma rodando o script localmente, elas vão dessincronizar. A solução é ter um único servidor que distribui o tempo. Os clientes recebem a hora do servidor e calculam localmente. Um simples arquivo JSON sendo servido por um HTTP server básico em Node.js ou Python já resolve.

Eu também já tive um caso onde o navegador mobile fechou a aba e o timer parou. Navegadores modernos pausam setInterval quando a aba não está visível. A solução é usar requestAnimationFrame em vez de setInterval, ou manter uma aba oculta rodando o timer.

Download de exemplo pronto

Se quiser algo já funcionando, posso indicar dois projetos open source que eu uso como base: - GitHub - newyear-countdown: Um template HTML/CSS/JS simples que já vem com fuso horário configurado para São Paulo. Você baixa, edita a data e abre no navegador. Não precisa de servidor.

- GitHub - countdown-server: Um servidor Python que distribui o tempo para múltiplos clientes via WebSocket. Ideal se você tem mais de uma tela e quer que todas fiquem sincronizadas. Nenhum dos dois é perfeito. O primeiro não escala para múltiplas telas. O segundo precisa de um servidor rodando. Ambos têm issues abertos sobre DST em outros países. Se você precisa de algo robusto para um evento grande, considere usar um serviço de tempo via API NTP para sincronizar os relógios dos clientes antes de começar a contagem.

O que funciona na prática

A minha configuração padrão para eventos pequenos (até 5 telas) é um Raspberry Pi rodando o servidor de WebSocket, conectado à rede local, e cada tela acessando o timer pelo navegador. Custo baixo, sincronização boa o suficiente, e se algo quebrar, basta reiniciar o serviço. Leva cerca de 10 minutos para colocar no ar, desde que você já tenha os equipamentos montados. Para eventos maiores, com projetores e controle remoto, aí você entra num mundo diferente. Precisa de um servidor dedicado, fallback para horário local caso a rede caia, e um plano B porque a iluminação do local sempre interfere na leitura do display. Eu já perdi uma contagem porque um projetor estava configurado em modo "cine" e o verde parecia branco. Demorei dois dias para entender o que tinha acontecido.