Páscoa - Festas Móveis
Publicado por Khayla Elias dos Santos (última atualização em 09/06/2014)
[ Hits: 3.828 ]
Homepage: https://linktr.ee/khayla.elias
Calcula datas de feriados nacionais móveis baseados na Páscoa através do algoritmo de Jean Baptiste Joseph Delambre.
Exemplo de uso:
$ pascoa 2014
O parâmetro de entrada é opcional, caso se refira ao ano corrente.
#!/bin/bash
# Calculo dos Feriados Nacionais baseados na Pascoa através do
# Algoritmo de Jean Baptiste Joseph Delambre (1749 – 1822).
#
# Por: Alexandre Elias dos Santos (aleniac@yahoo.com.br)
# confere parametro de entrada
if [ $# != 0 ]; then
if [ $1 -ge 1583 ]; then
y=$1
else
echo "Erro: Ano deve ser maior ou igual a 1583!"
exit 1
fi
else
y=`date +%Y`
fi
#testa ano bissexto para calendario gregoriano
function bissexto(){
local y=$1
if ([ $(($y % 4)) -eq 0 ] && [ $(($y % 100)) -ne 0 ]) || [ $(($y % 400)) -eq 0 ]
then return 1
else return 0
fi
} # bissexto – retorna 1 se ano for bissexto, caso contrario 0.
# vetores para armazenar dia e mes dos feriados moveis (carnaval, paixao, pascoa, corpus)
vdia=(0 0 0 0)
vmes=(0 0 0 0)
# vetor para saida do teste de ano bissexto
bis=("nao" "sim")
#calcula pascoa
a=$(($y % 19))
b=$(($y / 100))
c=$(($y % 100))
d=$(($b / 4))
e=$(($b % 4))
f=$((($b + 8 ) / 25))
g=$((($b -$f + 1) / 3))
h=$(((19 * $a + $b - $d - $g + 15) % 30))
i=$(($c / 4))
k=$(($c % 4))
l=$(((32 + 2 * $e + 2 * $i - $h - $k) % 7))
m=$((($a + 11 * $h + 22 * $l) / 451))
p=$((($h + $l - 7 * $m + 114) / 31))
q=$((($h + $l - 7 * $m + 114) % 31))
q=$(($q + 1))
vdia[2]=$q
vmes[2]=$p
#verifica se ano e’ bissexto
bissexto $y
bi=$?
# calcula Sexta da Paixao
if [ $q -le 2 ]; then
vdia[1]=$((29 + $q)) # dia
vmes[1]=3 #mes
else
vdia[1]=$(($q - 2)) # dia
vmes[1]=$p # mes
fi
# calcula terça de Carnaval
if [ $p -eq 4 ]; then
if [ $q -le 16 ]; then
vdia[0]=$((12 + $bi + $q))
vmes[0]=2
else
vdia[0]=$(($q - 16))
vmes[0]=3
fi
else
vdia[0]=$(($bi + $q - 19))
vmes[0]=2
fi
# calcula quinta de Corpus
vdia[3]=$(($q - 1))
if [ $p -eq 3 ]; then
vmes[3]=5
else
if [ $q -eq 1 ]; then
vdia[3]=31
vmes[3]=5
else
vmes[3]=6
fi
fi
# saidas
echo "Datas das Festas Moveis em $y"
echo "Algoritmo de Delambre (1749 - 1822)"
echo
echo -e "Ano Bissexto: \t${bis[$bi]}"
echo -e "Carnaval: \t${vdia[0]}/${vmes[0]}"
echo -e "Paixao: \t${vdia[1]}/${vmes[1]}"
echo -e "Pascoa: \t${vdia[2]}/${vmes[2]}"
echo -e "Corpus: \t${vdia[3]}/${vmes[3]}"
Soma valores de uma lista (calculo notas, pontos, etc)
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Instalando partes faltantes do Plasma 6
Adicionar botão "mostrar área de trabalho" no Zorin OS
Como montar um servidor de backup no linux
Estou tentando ser legalista, mas tá complicado! (9)
espelhar monitores nao funciona (2)
SQLITE não quer funcionar no LINUX LMDE6 64 com Lazaruz 4.2 64bit (n... (1)









