Posts Tagged ‘horario’

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

Saturday, October 4th, 2008

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.

Horário de verão tupiniquim

Saturday, October 4th, 2008

Todos os anos sempre foi a mesma confusão. O governo brasileiro indo na contra mão de todas as lógicas práticas adotadas por muitos países, a cada ano definiu as datas para o início e fim do polêmico horário de verão semanas antes de seu início, mudando a lógica todos os anos por razões inexplicáveis, causando prejuízos imensos para a economia nos dias de hoje, onde muita coisa é baseada em relógio e esses precisam estar sincronizados corretamente não apenas com a hora presente, mas também com o calendário futuro.

Numa tentativa desastrada de acabar com a confusão de ter uma regra diferente a cada ano, a Presidência da República publica no último dia 8 de setembro o Decreto número 6.558. Quando eu li esse texto, simplesmente não pude acreditar. Se alguém tivesse me contado, eu juraria que era piada. A regra se resume assim:

“Art. 1o: Fica instituída a hora de verão, a partir de zero hora do terceiro domingo do mês de outubro de cada ano, até zero hora do terceiro domingo do mês de fevereiro do ano subsequente, em parte do território nacional, adiantada em sessenta minutos em relação à hora legal.”

Fantástico, finalmente! O governo estaria de parabéns, não fosse a mais estúpida exceção:

“Parágrafo único. No ano em que houver coincidência entre o domingo previsto para o término da hora de verão e o domingo de carnaval, o encerramento da hora de verão dar-se-á no domingo seguinte.”

Muitos devem estar se perguntando “qual o problema?”. À primeira vista, a regra pode parecer simples, mas para quem não sabe, o dia do carnaval é 47 dias antes da páscoa. Como o carnaval é numa terça-feira, o domingo de carnaval acontece 49 dias antes da páscoa. A páscoa, por sua vez, acontece no primeiro domingo após a primeira lua cheia que ocorre depois do equinócio de outono (ou primavera no hemisfério norte), ou seja, se baseia no calendário judaico (lunar) e não no calendário gregoriano. A Pessach (páscoa judaica) acontece sempre no dia 14 do mês judaico de Nissan.

Todos os sistemas operacionais modernos e até mesmo milhares de equipamentos embarcados possuem facilidades para se ditar as regras de entrada e saída do horário de verão, para que isso seja feito automaticamente sem intervenção humana a cada ano. A maneira como essa regra é implementada se baseia estritamente no calendário gregoriano, obviamente. Algo como:

Regra clara na Europa:

  • Início: último domingo de março às 1h00 UTC
  • Fim: último domingo de outubro às 1h00 UTC

Regra clara nos EUA e Canadá:

  • Início: segundo domingo de março às 2h00 hora local
  • Fim: primeiro domingo de novembro às 2h00 hora local

Uma sugestão absolutamente lógica para o Brasil:

  • Início: terceiro domingo de outubro às 0h00 hora local
  • Fim: terceiro domingo de fevereiro às 24h00 hora local

Há um artigo interessante na Wikipédia falando sobre o cálculo da data da páscoa, que por muito tempo foi praticamente um enigma. Vários algoritmos surgiram para solucionar o problema, mas todos bastante complexos.

Uma das coisas mais importantes para a economia e a produtividade em geral é a simplicidade dos processos. Tudo que é complicado naturalmente custa mais e torna tudo menos produtivo. Vide a burocracia, ou burrocracia, tão conhecida de nós brasileiros.

Me entristece ver coisas assim quando o mundo está cheio de bons exemplos simples.

“Existem apenas duas coisas infinitas – o Universo e a estupidez humana. E não tenho tanta certeza quanto ao Universo.”

Albert Einstein