shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Horário de verão


From: Flavio Junior
Subject: Re: [shell-script] Horário de verão
Date: Tue, 16 Sep 2008 20:05:21 -0300

Da uma olhada nisso..
Não testei mto mas parece funcionar bem, ou mais facil de melhorar.

# awk '/^Su/{print $4}' <(LC_ALL=C ncal 02 2009)
15
# awk '/^Su/{print $4}' <(LC_ALL=C ncal 10 2008)
19


(O LC_ALL=C é pra garantir que não vai ser "Domingo" invés de "Sunday").

--

Flávio do Carmo Júnior aka waKKu

2008/9/16 Fabiano Caixeta Duarte <address@hidden>:
> Senhores,
>
> Levando em consideração que o nosso horário de verão passou de
> variável a parametrizável
> (http://www.mme.gov.br/site/news/detail.do?newsId=16838&currentArea=),
> imagino que surgirão alternativas para atualização automática.
>
> Conforme decreto, o horário de verão se inicia no terceiro domingo de
> outubro e termina no terceiro domingo de fevereiro do ano subsequente
>
> Pra quem não usa alternativas como tzdata ou similares, segue um
> script que deve funcionar se executado entre março e setembro.
>
> Eu na verdade não gostei muito da função terceiroDomingo e aceito
> sugestões de melhoria.
>
> Abraço a todos.
>
> #!/bin/bash
> # Sugestão: executar via crontab a cada dia 1º de outubro
>
> ----------------------------------------------------------
> TMP=$(mktemp -p /tmp verao.XXXXXX)
>
> ANO_INI=$(date +%Y)
> ANO_FIM=$((ANO_INI+1))
>
> function terceiroDomingo() {
> # $1: mês
> # $2: ano
> cal $1 $2 | sed 1,2d | awk 'NF == 7 {print}' | sed '3!d' | cut -d" " -f1
> }
>
> DIA_INI=$(terceiroDomingo 10 $ANO_INI)
> DIA_FIM=$(terceiroDomingo 02 $ANO_FIM)
>
> cat << EOF >> $TMP
> Rule Brazil $ANO_INI only - Oct $DIA_INI 00:00 1 S
> Rule Brazil $ANO_FIM only - Feb $DIA_FIM 00:00 0 -
>
> Zone Brazil/East -3:00 Brazil BR%sT
> EOF
>
> zic $TMP
>
> rm $TMP
> ----------------------------------------------------------
>
> --
> Fabiano Caixeta Duarte
> Especialista em Redes de Computadores
> Linux User #195299
> Ribeirão Preto - SP
>
> 


reply via email to

[Prev in Thread] Current Thread [Next in Thread]