Horário de verão tupiniquim, versão técnica

Seguindo o meu último post, quero falar um pouco sobre a importância do relógio, especialmente nos dias de hoje, de um mundo interconectado.

Antes de tudo, que horas são?

O meu relógio está marcando aqui 21h25. É essa a hora certa? Se eu ligar para um amigo agora em Seattle, ele vai me dizer 17h25, em Londres 1h25 da madrugada. Que confusão, eu só quero saber que horas são. Se a resposta foi qualquer hora + 25 minutos, está correta. Tudo depende de onde a resposta está partindo!

Como o mundo inteiro pode se coordenar com essa bagunça de fusos horários, horário de verão cuja regra varia de região pra região, e outras peripécias, como fusos horários de 15 e 30 minutos de separação, etc? Para isso existe o Tempo Universal Coordenado, o UTC, ou GMT (Greenwich Mean Time), ou ainda “Zulu Time”. É importante salientar que a hora UTC nunca varia. Sempre anda para frente na mesma frequência, perfeitamente alinhada com o sol no meridiano zero.

É em função dessa previsibilidade e uniformidade que é a hora utilizada por muitos sistemas no mundo. Toda a aviação no mundo, inclusive aqui no Brasil, por exemplo, só fala UTC. Grande parte dos sistemas na Internet são baseados em UTC. Grandes empresas com sedes em vários países só operam com referências UTC, e assim por diante…

Vários países no mundo possuem horário de verão, por várias razões, principalmente para economizar energia. Não vou entrar no mérito da questão. Os países com governos com algum nível de inteligência possuem regras repetitivas definindo o dia que o horário de verão começa e termina. Não é o caso do Brasil, infelizmente, que nunca teve uma regra, e agora que tem uma, é quase enigmática, baseando-se no calendário lunar. Acredite, não estou brincando!

O que muita gente se confunde é que na verdade não existe horário de verão. O que existe é fuso horário de verão. Um país, ou uma região, quando entra no horário de verão, na verdade está “se mudando” para o fuso horário seguinte. No caso do Brasil, os estados que atendem o horário de verão estão normalmente em UTC-3. No horário de verão, estão em UTC-2. A hora de referência, UTC, é sempre a mesma. Varia apenas o fator de correção em relação ao UTC.

A confusão técnica está em não sabermos quando essa mudança vai acontecer, pois dependia de um canetasso do Presidente.

Considerando que, de acordo com a regra publicada em 2007, parte do Brasil foi para o horário de verão no segundo domingo de outubro e; este ano a regra mudou para o terceiro domingo de outubro, sendo publicada no início de setembro apenas, vamos a alguns exemplos de problemas que isso ocasiona:

Exemplo 1, uma reunião:

No dia 31 de agosto, eu em Porto Alegre marco uma reunião para o dia 14 de outubro às 11h00 da manhã (hora de Porto Alegre) com minha amiga Fernanda que mora em Zurich, portanto 15h00 para ela. Os sistemas de agendamento obviamente vão gravar isso em UTC, para não haver confusão. O sistema consulta o regramento de hora de verão e verifica que no dia 14 de outubro às 11h00 vai ser 13h00 UTC, pois nesse dia Porto Alegre estaria no horário de verão. Reunião marcada. O governo publica a regra dizendo que o horário verão começa dia 19 de outubro. Chega o dia 14 de outubro 11h00 local, 14h00 UTC, 16h00 em Zurich. Ooops, acho que estou uma hora atrasado! Entenderam o drama?

Exemplo 2, aviação:

Este é um exemplo real que aconteceu comigo:

Em agosto em 2006, eu comprei uma passagem da American Airlines para Dallas num voo partindo de São Paulo dia 22 de outubro. Por razões óbvias a aviação opera toda em UTC, e assim são os planos de voo. O plano do voo que eu comprei previa decolagem às 0h30 UTC. Em agosto, os sistemas da American Airlines previam que 22 de outubro seria horário de verão no Brasil, logo aplicaram uma diferença de 2 horas em relação ao UTC, me vendendo um voo que partiria portanto às 22h30 hora local, pois por lei as passagens têm que ser emitidas em hora local, o que faz sentido até. Após eu ter a passagem em mão, o governo no auge de sua estupidez posterga o início do horário de verão para 5 de novembro, pois as ultra-modernas urnas eletrônicas não suportavam isso (claro, com essa bagunça!). Se o plano de voo da American Airlines era para às 0h30 UTC e agora a diferença horária era de 3 horas e não 2, meu voo consequentemente seria às 21h30, correto? A Tam, onde voei de Porto Alegre pra Guarulhos, também registra todos os seus planos de voo em UTC, mas eles usam como referência a hora local, então mantiveram seus voos travados na hora local, ajustando a UTC, o que é razoável para voos domésticos. Resultado, a Tam atrasou todos os seus voos em uma hora em relação ao UTC para manter a hora local e todo mundo perdeu as suas conexões no aeroporto de Guarulhos, causando um prejuízo absurdo para todo o sistema de aviação, que teve que fazer um replanejamento monstruoso de slots e escalas de tripulação e aeronaves para cumprir um canetasso do Presidente.

Como de costume, publiquei o arquivo com a mais nova regra, desta vez mais confusa do que nunca, do nosso horário de verão. Pra simplificar a jogada no Linux, fiz um script que faz a operação toda. Faça o seguinte logado como root:

wget http://hackers.propus.com.br/~marlon/dst/update_dst.sh
bash update_dst.sh

O script vai baixar automaticamente outro arquivo, o southamerica, onde estão as regras que são válidas até 2100, isso se não mudar tudo de novo, é claro.

Para os curiosos, eu fiz um script em Python que calcula o término do horário de verão de acordo com a nova lei para qualquer ano.

Os usuários Windows podem baixar este arquivo de registro e executá-lo em seu computador. Ele vale apenas para 2008. Você deve verificar na sua configuração de relógio se o fuso horário está certo para -03:00 Hora de Brasília e se a opção para ajustar automaticamente para o horário de verão está marcada.

ATENÇÃO: se você quiser mudar para o horário de verão manualmente, jamais mexa no relógio. Altere o fuso horário para -02:00 Fernando de Noronha então. Lembre-se que a sua hora UTC nunca pode mudar.

Boa sorte.