Páscoa - Festas Móveis
Publicado por Khayla Elias dos Santos (última atualização em 09/06/2014)
[ Hits: 3.795 ]
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]}"
Verifica se usuario corrente é root.
Convertendo decimal para hexadecimal
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
IA Turbina o Desktop Linux enquanto distros renovam forças
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Como realizar um ataque de força bruta para desobrir senhas?
Como usar Gpaste no ambiente Cinnamon
Atualizando o Fedora 42 para 43
Erro no suitable vídeo mode (0)
Erro no suitable vídeo mode (0)
Erro no suitable vídeo mode (0)
ERRO: LAZARUS 4.2 64 no Linux MINT não entra mais apos ajustar desktop... (0)









