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

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

RES: [shell-script] calcular hora (essa e bronca, totalmente HARD CORE)


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: [shell-script] calcular hora (essa e bronca, totalmente HARD CORE)
Date: Tue, 5 Jul 2005 11:30:51 -0300

Aê Jorge,
eu uso dois programas para isso: o primeiro, hton.sh, transforma uma hora na
qtd de segundos decorridos a partir de 00:00:00 e o segundo, ntoh.sh faz o
oposto, isto é, transforma a qtd de segundos em hora.

Então para fazer o que vc precisa, basta passar o hton.sh em todos os
horários somando suas saídas e ao fim passar o ntoh.sh.

[ ]s,
Julio
:wq

=======================================================
$ 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`
=================================================================
$ 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:
===============================================================

| -----Mensagem original-----
| De: Jorge Pereira [mailto:address@hidden]
| Enviada em: segunda-feira, 4 de julho de 2005 18:51
| Para: address@hidden
| Assunto: [shell-script] calcular hora (essa e bronca, totalmente
| HARDCORE)
| 
| 
| Olá Amigos da Lista,
| Estou com uma Bronca muito seria e sei que se deus quiser algum
| abençoado vai me ajudar a resolver está bronca.
| vamos lá.
| 
| 1) eu tenho um programa que me retorna as tais colunas, exemplo.
| 
| = > Programa XYZ
| 
| ROTINA1    01:31:44
| ROTINA2    01:21:24
| ROTINA3    05:55:03
| ROTINA4    11:41:44
| ROTINA5    55:21:23
| ROTINA6    03:31:24
| ROTINA7    01:07:41
| 
| 2) O que eu preciso, tipo! preciso que ele pegue estes dados e gere um
| calculo tipo.
| 
| 
| O Programa (XYZ) teve uma media de X horas e Y minutos e Z 
| Segundos, ou
| algo parecido
| 
| 22h:41m:03s
| 
| ou
| 
| 1d:12m:44s
| 
| OBS: Se alguem puder me ajudar, ficaria muito grato com este 
| calculo...
| acho que o ideal seria utilizar o AWK, mais não consegue abstrair o
| calculo
| perfeito para tal situação.
| 
| Um Abraço a todos
| 
| 
| [As partes desta mensagem que não continham texto foram removidas]
| 
| 
| 
| ---------------------------------------------------------------------
| 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]