Páscoa - Festas Móveis
Publicado por Khayla Elias dos Santos (última atualização em 09/06/2014)
[ Hits: 3.538 ]
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]}"
Operações com valores em arquivo texto
Script para ativar a interface de rede
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Como renomear arquivos de letras maiúsculas para minúsculas
Imprimindo no formato livreto no Linux
Vim - incrementando números em substituição
Efeito "livro" em arquivos PDF
Como resolver o erro no CUPS: Unable to get list of printer drivers
Não to conseguindo resolver este problemas ao instalar o playonelinux (1)
Excluir banco de dados no xampp (1)
[Python] Automação de scan de vulnerabilidades
[Python] Script para analise de superficie de ataque
[Shell Script] Novo script para redimensionar, rotacionar, converter e espelhar arquivos de imagem
[Shell Script] Iniciador de DOOM (DSDA-DOOM, Doom Retro ou Woof!)
[Shell Script] Script para adicionar bordas às imagens de uma pasta