shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] criticar data


From: Alain
Subject: Re: [shell-script] criticar data
Date: Thu, 17 Nov 2005 13:48:22 -0200
User-agent: Mozilla Thunderbird 1.0 (X11/20041206)

Eu já usei muito um truque mais simples: Converte e desconverte usando o date, depois compara.

O que acontece é o seguinte: se fôr um dia 31 de fevereiro, o date deveria converter automáticamente para 2 ou 3 de março, e aí a comparação fica melhor.

Só estou me metendo porque não acharia satisfatório um teste com expressões regulares que não detectasse esse erro. Deve dar para fazer, mas a expressão deve ser monstruosa...

Alain

Tiago Barcellos Peczenyj escreveu:
Que tal utilizar expressões regulares ?

[[ "16112005" =~ '([012][0-9]|3[01])(0[1-9]|1[012])[0-9]{4}' ]] && echo "ok"

Em 17/11/05, Fabricio Lopes de Souza <address@hidden> escreveu:

no meu exemplo :
dia invalido é maior que 31 ou menor que 1
mes invalido é maior que 12 ou menor que 1
ano invalido é menor que 2000 e maior que 2005

pode fazer as modificações que quiser , pode até ver os meses que tem
30,31 dias e talz ... mas fica aqui um exemplo bem simples

//---------------------
#!/bin/bash

read -p "Digite a Data ( ddmmaaaa ) : " data

if [[ ${data:0:2} -gt 31 || ${data:0:2} -lt 1 ]] ; then
echo "Dia Invalido"
exit 1
else
if [[ ${data:2:2} -gt 12 || ${data:2:2} -lt 1 ]] ; then
echo "Mes Invalido"
exit 1
else
if [[ ${data:4:4} -gt 2005 || ${data:4:4} -lt
2000 ]] ; then
echo "Ano Invalido"
exit 1
fi
fi
fi
echo "Data ok!"
//----------------------------------------------------------------


---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------



*Yahoo! Grupos, um serviço oferecido por:*  PUBLICIDADE
<http://br.rd.yahoo.com/SIG=12fndpua8/M=380335.7481167.8369105.2369893/D=brclubs/S=2137111254:HM/Y=BR/EXP=1132230895/A=3126093/R=2/id=noscript/SIG=12c39trgo/*http://ad.br.doubleclick.net/clk;22846485;12120066;a?http://www.hoteis.com>
------------------------------
*Links do Yahoo! Grupos*

  - Para visitar o site do seu grupo na web, acesse:
  http://br.groups.yahoo.com/group/shell-script/
  - Para sair deste grupo, envie um e-mail para:
  address@hidden<address@hidden?subject=Unsubscribe>
  - O uso que você faz do Yahoo! Grupos está sujeito aos Termos do
  Serviço do Yahoo! <http://br.yahoo.com/info/utos.html>.





[As partes desta mensagem que não continham texto foram removidas]



---------------------------------------------------------------------
Esta lista não admite a abordagem de outras liguagens de programação, como 
perl, C etc. Quem insistir em não seguir esta regra será moderado sem prévio 
aviso.
---------------------------------------------------------------------
Sair da lista: address@hidden
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Links do Yahoo! Grupos









reply via email to

[Prev in Thread] Current Thread [Next in Thread]