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

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

script para fazer calculos com datas


From: aurelio
Subject: script para fazer calculos com datas
Date: Fri, 7 Feb 2003 17:35:53 -0300 (ART)

oi pessoal,

semana passada (ou foi a retrasada?) o mestre julio postou
aqui na lista dois scripts para converter data para inteiro
e vice-versa.

eu fiquei realmente impressionado com a simplicidade de
um script tão útil e resolvi brincar em cima (opa!) deles.

o resultado foi um script (na verdade uma função) shell
que lida com datas, fazendo a conversão data->inteiro,
inteiro->data e também somando e subtraindo datas.
(dá até pra fazer multiplicação e divisão, embora a
 utilidade disso seja discutível :)
também dá pra somar/subtrair datas e inteiros.

eu juntei algumas funções num arquivo, que chamo de funções
ZZ (por causa do prefixo delas), e essa função de data foi
incluída como zzdata()

estou mandando aqui pra shell-script também porque trabalhar
com datas É UM SACO, e esse script ajuda a manter a sanidade
&:)

segue abaixo o anúncio mandado pra lista das funções, e
quem quiser usar, basta baixar o
http://verde666.org/zz/funcoeszz

----------------------------------------------------------

e a função nova é a zzdata. o código ficou feio, spaguetti,
sopa de letrinhas, e foi de longe a função mais complicada
de todas para fazer. em parte por que primeiro eu tive que
(re)aprender o que era um ano bissexto e tive que fazer um
script de teste pra garantir a precisão do resultado e
tudo mais.

mas no fim, ficou legal e útil. e essa é também especial
por ser a 50a função do pacote! vejam:

# zzdata
zzdata data|num [+|- data|num]

# zzdata --help

faz cálculos com datas e/ou converte data->num e num->data
Que dia vai ser daqui 45 dias? Quantos dias há entre duas datas?
zzdata!
Quando chamada com apenas um parâmetro funciona como conversor de data
para número inteiro (N dias passados desde Epoch) e vice-versa.
obs.: Leva em conta os anos bissextos     (Epoch = 01/01/1970,
editável)
uso: zzdata data|num [+|- data|num]
ex.: zzdata 22/12/1999 + 69
     zzdata hoje - 5
     zzdata 01/03/2000 - 11/11/1999

# zzdata hoje + 1
08/02/2003

# zzdata 22/12/1999 + 69
29/02/2000

# zzdata 01/03/2000 - 11/11/1999
111

# zzdata 0
01/01/1970

# zzdata today - 17
21/01/2003


o script está no lugar de sempre
http://verde666.org/zz
ou
zzzz --atualiza

falouzz!

=====
-- 
aurelio

_______________________________________________________________________
Busca Yahoo!
O melhor lugar para encontrar tudo o que você procura na Internet
http://br.busca.yahoo.com/


reply via email to

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