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

 


Responder a