Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Mão na Massa - Programação Shell

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Calculando a data da Páscoa em qualquer ano.

Colaboração: Braulio Junior

Data de Publicação: 12 de setembro de 2008

Com a definição da data fixa para início e término do Horário de Verão, de acordo com o Decreto 6.558 (https://www.planalto.gov.br/ccivil_03/_ato2007-2010/2008/decreto/d6558.htm), e com a dica do colega Ismael Carelli, que postou a fórmula na qual esse script é baseado, resolvi montar um script para o cálculo da Páscoa em qualquer ano. Para calcular o Carnaval, basta tirar 40 dias da data calculada.

Como parâmetro, passe sempre o ano a ser calculado.

  #!/bin/sh
  a=$1
  c=$(( $a/100 ))
  n=$(( $a - (19*($a/19)) ))
  k=$(( ($c - 17)/25 ))
  i=$(($c - ($c/4) - (($c-$k)/3) + (19*$n) + 15))
  i=$(($i-(30*($i/30)) ))
  i=$(($i-(($i/28)*(1-($i/28))*(29/($i+1))*((21-$n)/11))))
  j=$(( $a + ($a/4) + $i + 2 - $c + ($c/4)))
  j=$(( $j - (7*($j/7))))
  l=$(($i-$j))
  m=$((3 + (($l+40)/44)))
  d=$(($l + 28 - (31*($m/4))))
  
  echo "Pascoa: $d/$m/$a"

Governo assina protocolo para o uso do padrão ODF nos documentos oficiais

Fonte: Notícias Linux

Os principais órgãos, bancos oficiais e empresas estatais de processamento de dados federais, assinaram no dia 27/08, um "Protocolo de Intenção para Adoção do Open Document Format - ODF", em contraponto à decisão da ISO que, recentemente, também aprovou o padrão OXML, da Microsoft, como formato de documento para interoperabilidade em nível mundial. A entidade rejeitou também um protesto feito pelo governo brasileiro contra essa decisão.

Fonte: http://www.broffice.org/governo_assina_protocolo_odf

Veja a relação completa dos artigos de Braulio Junior

Stumble Upon Digg This Del.icio.us Twitter Recomendar este artigo a um amigo Entre em contato Formato PDF
Newsfeed RSS
Formato para impressão
StumbleUpon Digg Del.icio.us Twitter Recomendar Contato PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.02/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.0 /5 (243 votos)

Opinião dos Leitores

Matias Schweizer
16 Set 2008, 15:30
Retificando meu comentário anterior (pra variar, tinha um bug), há um erro na contagem do cal 2 YYYY, quando Fevereiro começa em um domingo. Nesse caso, precisei alterar as seguintes linhas

(...)
df=`date --date "$dc2" +%d`

# pega que dia será 01/02/YYYY
d1=`date --date "02/01/$a" +%w`

# Se for domingo, o cal deve pular 5 linhas, caso contrário, 6
if [ "$d1" = "0" ]; then
pl=5
else
pl=6
fi

td=`cal 2 $a|head -$pl|tail -1|cut -d" " -f1`
(...)

Pelo teste, os anos seriam:
2012, 2015, 2023, 2026, 2034 e 2037
Matias Schweizer
16 Set 2008, 15:02
Também fiz uns incrementos com base no código acima. Com isso, sei quando termina o horário de verão (se tudo estiver certo):

(...)
echo "Pascoa: $d/$m/$a"
dc1=`date --date "$m/$d/$a"`

# pascoa - 49 dias = domingo de carnaval
dc2=`date --date "$dc1 - 49 days ago"`

# pega o nr. dia do domingo de carnaval
df=`date --date "$dc2" +%d`

# usa o cal para pegar o terceiro domingo de fevereiro
td=`cal 2 $a|head -6|tail -1|cut -d" " -f1`

# se forem iguais, o final será mais 7 dias
if [ "$df" = "$td" ]; then
echo Fim: `date --date "$dc2 + 7 days"`
else
echo Fim: $dc2
fi

Também fiz um loop até 2038, onde é o limite da data do unix. Esses casos ocorrerão em 2009, 2012, 2023 e 2034.

Com isso, pode-se escrever regras específicas para o zic para essas datas.
Flávio Raphael Barcellos
15 Set 2008, 10:14
A terça-feira de carnaval é 47 dias antes do Domingo de Páscoa.

A Quaresma Católica Romana, inicia na Quarta-Feria de Cinzas e termina
no Domingo de Ramos (o Domingo anterior a Páscoa).

Assim para calcular quando será o término do horário de verão, é
preciso diminuir 49 dias do Domingo de Páscoa e verificar se esse dia
é o terceiro domingo do mês, se for, some 7 dias.

Para quem gosta de um feriado prolongado: Corpus Christi é 60 dias
após o Domingo de Páscoa (é uma quinta-feira) - também é uma data
Católica Romana.

Adicionei as seguintes linhas ao final para imprimir as datas dos feriados:
-----------------
echo "Carnaval: " `date --date="$a-$m-$d - 47 days" +%d/%m/%Y`
echo "Corpus Christi: " `date --date="$a-$m-$d + 60 days" +%d/%m/%Y`
-----------------
Seria legal contar a história desse algoritmo. Tem um pouco dele
aí na Unicamp

http://www.liv.ic.unicamp.br/~pavm/mc102_1s07/lab01/lab.html

P.S.2: Para quem preferir pode-se usar o "comando" ncal (No Linux e no
BSD devem ser o mesmo). Se tiver tempo mando o script.
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script

English for Reading and Listening
Enriqueça o seu vocabulário recebendo diariamente mensagens divertidas em inglês, com áudio em MP3.
Saiba mais

Biblioteca

Desenvolvendo Websites com PHP
Por Juliano Niederauer

O Monge e o Executivo: uma História sobre a Essência da Liderança
Por James C. Hunter

Extreme Programming
Por Vinicius Manhaes Teles

UML: Guia do Usuário
Por Grady Booch, James Rumbaugh e Ivar Jacobson

O Vendedor de Sonhos
Por Augusto Cury

Segurança de Redes em Ambientes Cooperativos
Por Emilio Tissato Nakamura e Paulo Licio de Geus

O Conhecimento em Rede
Por Carlos Nepomuceno e Marcos Cavalcanti

Utilizando UML e Padrões
Por CRAIG LARMAN

Sistema de Banco de Dados
Por Abraham Silberschatz

Hardware PC: Guia de Aprendizagem Rápida
Por Carlos E. Morimoto

Manual Completo do Linux: Guia do Administrador
Por Evi Nemeth, Trent R. Hein, Garth Snyder

Redes de Computadores e a Internet
Por James F. Kurose e Keith W. Ross

O Segredo
Por Rhonda Byrne

Os Segredos da Mente Milionária
Por T. Harv Eker

Construindo Sites com CSS e (X)HTML
Por Mauricio Samy Silva

Use a Cabeça!: JSP & Servlets
Por Brian Bashan, Kathy Sierra, Bert Bates

Expressões Regulares: Uma Abordagem Divertida
Por Aurélio Marinho Jargas

Qualidade de Software
Por Andre Koscianski Michel dos Santos Soares

Descobrindo o Linux: Entenda o Sistema Operacional GNU/Linux
Por Joao Eriberto Mota Filho

Enterprise Javabeans 3.0
Por Bill Burke, Richard Monson