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

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

RES: [shell-script] Tempo final


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] Tempo final
Date: Mon, 14 Oct 2002 10:42:55 -0300

Abaixo seguem 2 utilitários que uso para operar com horários:
1 - hton.sh - Transforma horário em segundos decorridos desde meia-noite
2 - ntoh.sh - O inverso.

Assim para somar ou subtrair horas, transforme em segundos (usando o
hton.sh) some ou subtraia e transfome novamente em horário (usando o
hton.sh)

Prompt> ntoh.sh `hton.sh` ; date
10:42:56
Mon Oct 14 10:42:57 GMT 2002

============================================================================
=====

Prompt> cat hton.sh
#!/bin/sh
#
# Sintaxe: dton.sh [hh:mm:ss | hh mm ss ]
# Recebe um horario e transforma-o na qtd de segundos a partir de 00:00:00
# Caso este horario nao seja informado, a hora atual serah usada como
default
#
if  echo "$*" | egrep
"^(0?[0-9]|1[0-9]|2[0-3]):((0?|[1-5])[0-9]):((0?|[1-5])[0-9])" > /dev/null
then
    hh=`echo $1 | cut -f1 -d:`
    mm=`echo $1 | cut -f2 -d:`
    ss=`echo $1 | cut -f3 -d:`
elif  echo "$*" | egrep "^(0?[0-9]|1[0-9]|2[0-3]) ((0?|[1-5])[0-9])
((0?|[1-5])[0-9])" > /dev/null
then
    hh=$1
    mm=$2
    ss=$3
elif [ $# -eq 0 ]
then
    hh=`date "+%H"`
    mm=`date "+%M"`
    ss=`date "+%S"`
else
    echo "
         Uso: $0  [hh:mm:ss|hh mm ss].  Caso  nao seja informado
              parametro, o horario atual sera usado como default.
" > /dev/tty
    exit 1
fi
echo `expr $hh \* 3600 + $mm \* 60 + $ss`

============================================================================
=====

Prompt> cat ntoh.sh
#!/bin/sh
#
# Uso: ntoh.sh num (num = qtd de segundo a partir de 00:00:00)
#
# Recebe um numero e transforma-o em  um  horario  no  formato
# [d] hh:mm:ss,  indicando  quanto tempo passou  a  partir  de
# 00:00:00. Se hora > 24, d receberah a qtd de dias excedentes
#
if  [ $# -ne 1 ]
then
    echo "
      Uso: $0 num (num = qtd de segundo a partir de 00:00:00)
" > /dev/tty
    exit 1
fi

hh=`expr $1 / 3600`
if  [ $hh -gt 24 ]
then
    a=`expr $hh / 24`
    b=`expr $hh % 24`
    [ $b -lt 10 ] && b=0$b
    hh="$a $b"
else
    [ $hh -lt 10 ] && hh=0$hh
fi
mm=`expr \( $1 % 3600 \) / 60`
ss=`expr $1 % 60`
str=$hh:
for i in $mm $ss
do
    [ $i -lt 10 ] && i=0$i
    str=$str$i:
done

echo $str | cut -f-3 -d:

============================================================================
=====

[ ]s,
Julio Cezar Neves
-Eu Apoio o Software Livre-
-I Support Free Software-
* +55 21 2528-7070  /  9853-4044
*address@hidden


> -----Mensagem original-----
> De: Wallasthon Koscianski [mailto:address@hidden]
> Enviada em: sexta-feira, 11 de outubro de 2002 12:26
> Para: address@hidden
> Assunto: RES: [shell-script] Tempo final
> 
> 
> tudo bem concordo mas como poderia fazer essa soma?
> 
> At.
> 
> Wallasthon Koscianski
> Analista de Suporte Pleno
> Cimcorp Com. Int. e Inf. S/A
> e-mail : address@hidden
> Phone  : +55 41 343 5125
> Celular:  +55 41 9957 7128
> 
> -----Mensagem original-----
> De: Tiago F Bianchini [mailto:address@hidden]
> Enviada em: sexta-feira, 11 de outubro de 2002 12:19
> Para: address@hidden
> Assunto: Re: [shell-script] Tempo final
> 
> 
> Em Sexta 11 Outubro 2002 11:53, Wallasthon Koscianski escreveu:
> > Gostaria de saber se há alguma forma de conseguir o tempo 
> final de uma
> > aplicação por exemplo:
> > inicio-> 10:40:23
> > fim-> 11:43:30
> 
> não sei qual teu objetivo, mas poderia pegar a hora qdo chama 
> o comando,
> executar o comando e pegar a hora qdo ele acabar.
> 
> ou poderia pegar a hora inicial, chamar o comando atravez do 
> time, e depois
> somar a hora inicial e o tempo q levou para executa-lo.
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> 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.listasdiscussao.cjb.net
> ---------------------------------------------------------------------
> 
> 
> Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
> http://br.yahoo.com/info/utos.html
> 
> 
> 
> 
> 
> ---------------------------------------------------------------------
> 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.listasdiscussao.cjb.net
---------------------------------------------------------------------
 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html 



reply via email to

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