On Monday 24 July 2006 17:30, Tiago Barcellos Peczenyj wrote:
> postei um exemplo semanas atras com awk mas acharam muito complexo
[cut]
Olá,
#!/bin/sh
jc() {
echo
"$3-32075+1461*($1+4800+($2-14)/12)/4+367*($2-2-($2-14)/12*12)/12-3*(($1+4900+($2-14)/12)/100)/4"
|
bc
}
echo "`jc ${1:0:4} ${1:4:2} ${1:6:2}`sx`jc ${2:0:4} ${2:4:2}
${2:6:2}`sylxly-2^vp" | dc
A função jc() converte as datas (no formato yyyyMMdd) para uma representação
dentro do calendário "Juliano", depois utilizei o "dc" p/ calcular a
diferença entre as datas e em seguida o módulo (valores negativos).
Exemplo:
cálculo da diferença em dias entre duas datas no formato yyyyMMdd:
$ ./teste 20050202 20040102
397
Notem que difere em 30 dias do exemplo do Tiago (façam as contas).
Até,
herbert.
PS - p/ entender porque utilizei o calendário Juliano leiam o seguinte:
http://www.samag.com/documents/s=8284/sam0307b/0307b_s1.htm
---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil
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:
[EMAIL PROTECTED]
<*> O uso que você faz do Yahoo! Grupos está sujeito aos:
http://br.yahoo.com/info/utos.html