Páscoa - Festas Móveis
Publicado por Khayla Elias dos Santos (última atualização em 09/06/2014)
[ Hits: 3.405 ]
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]}"
Monitoramento automático de logs e envio por e-mail – Fácil e explicado
Excluir Arq. Velhos de um Diretório ATUALIZADO!
MACGEN V1.0 MAC Address Generator
Atenção a quem posta conteúdo de dicas, scripts e tal (2)
Criando um gateway de internet com o Debian
Configuração básica do Conky para mostrar informações sobre a sua máquina no Desktop
Aprenda a criar músicas com Inteligência Artificial usando Suno AI
Entendendo o que é URI, URL, URN e conhecendo as diferenças entre POST e GET
Ativando o Modo Noturno via Linha de Comando no GNOME/Wayland
Preparando pendrive com GNU/Linux [Corretamente!]
Instalando Google Chrome no Fedora 40
Habilitando a importação de senhas no Firefox
Como corrigir o erro do VirtualBox travar a máquina virtual em tela cheia
Contador de impressão - Plugin (0)
Problema ao configurar Zabbix no ubuntu (13)
Notebuxo positivo vaio VJFE43F11X Something has gone seriously wrong... (5)
Como faço pra um script ser executado apenas abrindo um terminal e dan... (8)
O Programa Configurações Sumiu no Ubuntu 22.04 [RESOLVIDO] (5)