paper-boy illustration

Boas notícias: Horário de verão brasileiro agora tem uma regra fixa. Ela afeta os arquivos de configuração de fusos horários.

Más notícias: A nova regra para a DST tem uma exceção quando ele termina em Carnaval domingos. Oh, não! Mais exceções!

Realmente uma boa notícia: Obter meu script Bash para gerar regras de exceção para os fusos horários do Brasil e esquecer-se sobre atualizações em arquivos de configuração!

Decreto tenta estabelecer uma regra geral:

Little Prince's King Em agosto, 28 de 2008, o governo brasileiro decretou uma regra geral * para determinar o horário de verão , quase colocando um fim à tradição muito criticada (especialmente por profissionais de TI) de decretos anuais para estabelecer diferentes datas de início e término para o período onde o tempo é ajustado para se obter economias de energia. De acordo com o decreto, os seguintes Estados estão sujeitos à DST:

  • Zoneinfo arquivos: "Brasil / East", "America / Sao_Paulo" (GMT-3):
    • Distrito Federal
    • Espírito Santo
    • Goiás
    • Minas Gerais
    • Paraná
    • Rio de Janeiro
    • Rio Grande do Sul
    • Santa Catarina
    • São Paulo
  • Arquivos de zoneinfo: Brasil / West, America / Amazonas (GMT-4):
    • Mato Grosso
    • Mato Grosso do Sul

Isto significa que os arquivos de configuração de fuso horário tem que ser definido com a configuração diferente para os seguintes Estados:

  • Arquivos de zoneinfo: "O Brasil / East", "America / Sao_Paulo" (GMT-3):
    • Alagoas
    • Amapá
    • Bahia
    • Ceará
    • Maranhão
    • Pará
    • Paraíba
    • Pernambuco
    • Piauí
    • Rio Grande do Norte
    • Sergipe
    • Tocantins
  • Arquivos de zoneinfo: Brasil / West, America / Amazonas (GMT-4):
    • Acre
    • Amazonas
    • Rondônia
    • Roraima

Observe que o Estados-incluído sobre a DST concentrar-se a vasta maioria da população e os recursos de TI, e também que zonas de tempo foram mudadas por um decreto anterior .

* Leia a tradução para Inglês do decreto (ferramenta de tradução Google ®).

Em suma: a regra geral:

  • Começa no domingo 03 de outubro, à zero hora (meia-noite de sábado), desloca uma hora à frente, perdendo uma hora.
  • Termina no domingo 03 de fevereiro, à zero hora (meia-noite de sábado), muda para trás uma hora, ganhando aquela hora perdida de volta.

Agora, em GNU / Linux, isso pode ser codificado como uma regra na configuração do arquivo de fuso horário para "Brasil / East" (apenas sobre os Estados mencionados no decreto):

 Regra Brasil 2008 max - S outubro thirdSun 00:00 s 01:00 
  Regra Brasil 2009 max - Feb thirdSun 00:00 s 0 - 
 

O Mess Up-

King Momus Isso poderia ter sido perfeito, se não fosse por um detalhe: O domingo de Carnaval!

Sim, como muitos de vocês sabem, os brasileiros amam o carnaval, e todos os desfiles lindos. Essas são coisas realmente sério para muitas pessoas lá. E imaginar o que aconteceria se, de repente, durante um desfile, você poderia ter uma hora extra para fazer o samba?

Por mais ridículo que possa parecer, o decreto cita uma exceção, quando o fim do horário de verão coincidir com o domingo de Carnaval, que está no meio de um feriado de 4 dias e meia! Neste caso, horário de verão termina no domingo seguinte.

Trazendo Ordem ao Caos

Quando não ocorrer o Carnaval?

Devil tempting Jesus Carnaval tem uma relação com uma tradição religiosa cristã, a Quaresma , que é o período de 40 dias que antecede a Páscoa Dia. O primeiro dia da Quaresma é chamado de "Ash Wednesday". Domingos são excluídos destes 40 dias, porque eles são considerados "Pascal domingos". Durante este período, as pessoas devem fazer o jejum e oração (abster-se de comer carne, celebrando e outras coisas). Assim, para se preparar para esses 40 dias, as pessoas estabelecem para uma grande festa: Carnaval! Desta forma, o dia de Carnaval é diretamente dependente no dia de Páscoa.

Quando é que a Páscoa ocorre?

Empty Thomb Páscoa celebra a ressurreição de Jesus Cristo e é baseado em um cálculo antigo e complexo: O Computus . É uma conversão do calendário gregoriano, tendo em consideração as fases da Lua e do Equinócio Vernal . De acordo com o Computus, "... Domingo de Páscoa é o domingo seguinte à data de lua cheia pascal. A data de lua cheia da Páscoa é a data de lua cheia eclesiástica após 20 de março. "

Como colocá-lo junto?

Eureka! O Carnaval ocorre antes da cinza quarta-feira, por isso é sempre terça-feira. Então tudo que você tem a fazer é voltar 49 dias a partir de dia de Páscoa:

  • 40 dias da Quaresma.
  • 6 Pascal domingos.
  • 3 dias a partir de quarta feira de cinzas ao domingo de carnaval.

Agora, verifique se ele corresponde DST data de fim. Se assim for, coloque DST que terminou em 7 dias depois.

Por exemplo: a Páscoa é celebrada em abril, 8 de 2012.

Domingo de carnaval é comemorado em fevereiro, 19, que é o 3 º domingo e coincide com o último dia do horário de verão. Portanto tem que haver uma exceção à regra de fuso horário para adiá-la para o próximo domingo:

  Regra Brasil 2012 apenas - Feb 26 00:00 0 - 

Existe uma maneira de evitar as alterações anuais na zona de tempo?

Halleluja! Aleluia! Sim! Obter meu script Bash e ele irá gerar todas as regras de exceção até o final dos tempos, de modo que você compilar Brasil / East arquivo de fuso horário apenas uma vez!

PS: O discurso Inglês foi criado para produzir a saída de pelo menos absurda do Google ferramenta de tradução.