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

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

Re: RES: [shell-script] Calcular Hora


From: Miguel da Silva
Subject: Re: RES: [shell-script] Calcular Hora
Date: Tue, 28 Sep 2004 14:16:02 -0300

Uma vez me encontrei com um problema relacionado com datas: calcular diferenças 
de datas e coisas do tipo; uma das soluções que encontrei era um programa que 
fazia exatamente isso que o Júlio Cézar falou, mas trabalhando com datas, ou 
seja: mudando datas para números e vice-versa. Esse método parece bem 
interessante quando a idéia é lidar com medidas que não estão no sistema 
decimal.

Até mais, Miguel D.

*********** SEPARADOR DE RESPOSTA  ***********

On 28/09/2004 at 01:01 p.m. Julio Cezar Neves - DATAPREVRJ wrote:

>Aê Pessoal,
>2 progs: hton.sh passa horário para numero e ntoh.sh faz o inverso. Então
>para subtrair 2 horários, use hton.sh nos dois e subtaia os números. Para
>somar horas ou minutos use o hton.sh some e em seguida use o ntoh.sh.
>
>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
>- Gerente do Programa de Software Livre -
>Tel:+55 21 2528-7070 / +55 21 8112-9988
>Fax: +55 21 2528-7646
>mailto:address@hidden
>
>
>| -----Mensagem original-----
>| De: linko_k [mailto:address@hidden]
>| Enviada em: terça-feira, 28 de setembro de 2004 11:28
>| Para: address@hidden
>| Assunto: [shell-script] Calcular Hora
>| 
>| 
>| Bom Dia,
>| 
>|  Gostaria de saber como eu faço para clacular hora, exemplo:
>| 
>|  - um processo começou as 13:59 e terminou as 17:39, como eu faço o
>|  calculo para saber o tempo que durou este processo ?
>| 
>|  - outro exemplo: começou as 23:14 e terminou as 03:48
>| 
>| 
>| 
>|  Obrigado,
>|  Linko
>| 
>| 
>| 
>| 
>| ---------------------------------------------------------------------
>| 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
>
>
>
>
> 
> 
>
>
>---------------------------------------------------------------------
>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]