yurifc4
(usa Manjaro Linux)
Enviado em 18/10/2014 - 13:03h
Boaa... o que eu preciso parece simples, pegar a data atual e talvez em uma variável uma data de nascimento, e mostrar quantos dias faltam para o aniversário.
Tenho como base esse script, a ideia é melhorar ele... diminuir talvez essa bagaça com algo mais simples.
############################## Pegar valores do sistema - Data do Sistema Operacional
ADEHOJE=$(date +"%d")
MES=$(date +"%m")
ANO=$(date +"%Y")
DSEMANA=$(date +"%w")
HOJE=$ADEHOJE"-"$MES"-"$ANO
echo "Dia =" $ADEHOJE
echo "Mês =" $MES
echo "Ano =" $ANO
echo "Dia da Semana =" $DSEMANA
echo "HOJE=" $HOJE
############################## Verificar se a data de nascimento informado através de parâmetro
x=$1 # DT DATAINFORMADA
DT_dia="${x:0:2}" # Pegar os dois primeiros caracteres da variável DT_DATAINFORMADA
DT_mes="${x:3:2}" # Pegar o quarto e quinto caractere da variável DT_DATAINFORMADA
DT_ano="${x:6:4}" # Pegar da sétima a décima posição de caracteres da variável DT_DATAINFORMADA, ou as quatro últimas posições.
echo "niver - Dia=" $DT_dia
echo "niver - Mês="$DT_mes
echo "niver - Ano="$DT_ano
############################### Testar o dia
if test $DT_dia -gt 0
then
if test $DT_dia -le 31
then
ERROR_DT="OK"
else
ERROR_DT="Dia informado é maior que 31"
fi
else
ERROR_DT="Valor do dia não confere"
fi
############################### Testar o mês
if test $DT_mes -gt 0
then
if test $DT_mes -le 12
then
ERROR_DT="OK"
else
ERROR_DT="Mês informado é maior que 12"
fi
else
ERROR_DT="Mês não confere"
fi
############################### Testar o ano
if test $DT_ano -gt 1900
then
if test $DT_ano -le $(date +"%Y")
then
ERROR_DT="OK"
else
ERROR_DT="Ano informado é maior que" $(date +"%Y")
fi
else
ERROR_DT="Ano não confere ou inferior a 1900"
fi
############################### Mensagem de Erro
if test $ERROR_DT != "OK"
then
echo $ERROR_DT
else
#Tratar a data de nascimento no formato dd-mm-aaa
# Aqui vou comparar o mês de nascimento com o mês do sistema operacional
case $DT_mes in
"01") ############################### Janeiro
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! JANEIRO"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
"02") ############################### Fevereiro
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! FEVEREIRO"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
"03") ############################### Março
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! MARÇO"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
"04") ############################### Abril
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! ABRIL"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
"05") ############################### Maio
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! MAIO"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
"06") ############################### Junho
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! JUNHO"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
"07") ############################### Julho
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! JULHO"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
"08") ############################### Agosto
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! AGOSTO"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
"09") ############################### Setembro
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! SETEMBRO"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
"10") ############################### Outubro
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! OUTUBRO"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
"11") ############################### Novembro
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! NOVEMBRO"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
"12") ############################### Dezembro
if test $DT_mes -lt $MES
then
echo "O mês $DT_mes do seu aniversário já passou!"
else
echo "Seu aniversário está chegando! DEZEMBRO"
if test $DT_dia -lt $ADEHOJE ## Exemplo comparar 23 < 23
then
echo "dia de aniversário $DT_dia já passou!"
else
if test $DT_dia -ge $ADEHOJE ## Exemplo comparar 23 >= 22
then
echo "dia de aniversário $DT_dia está chegando!"
fi
fi
fi
;;
esac
fi