[Perl] obtener numero de segundos
miguel gmail
miguel.listas en gmail.com
Vie Abr 15 02:04:11 CDT 2005
Gracias Gunnar,
> Asómate al CPAN, hay varias posibles soluciones a tu problema. Hay un
> módulo que me gusta mucho por su simplicidad, Date::Calc. Harías algo
> así:
>
> @inicio = Date::Calc::Now;
> proceso_largo();
> @fin = Date::Calc::Now;
> @duracion = Date::Calc::Delta_DHMS(@inicio, en fin);
>
> @duracion te entrega un arreglo con (dias,horas,minutos,segundos).
>
> Ahora, claro, si te interesa una interfaz más limpia, más OO o algo
> por el estilo, puede venirte bien asomarte a Time::Piece. Y, más en
> general, los chavos de DateTime _seguramente_ tienen algo útil para
> tí, tienen prácticamente todo lo que se te pueda ocurrir - aunque en
> un marco mucho más pesado que Date::Calc. Viendo rápido su manual,
> creo que podrías hacer algo así:
>
> $inicio = DateTime->now;
> proceso_largo();
> $fin = DateTime->now;
> $duracion = $inicio - $fin;
>
> $duracion es un objeto, y puedes preguntarle $duracion->seconds,
> $duracion->minutes, $duracion->nanoseconds, etc.
El problema del CPAN para mi es que no me puedo descargar los modulos
que quisiera, aqui la conexion esta muy controlada.
En cualquier caso, encontre la solucion, era bastante sencilla (mi tio
google sabe bastante de esto ;-) ):
$fecha_inicio = (localtime);
chomp ($fecha_inicio);
# separamos la fecha por espacios:
($vars1, $vars2, $vars3, $vars4, $vars5) = split(/ /,$fecha_fin);
# el cuarto campo es el de horas:minutos:segundos, que separamos por el ´:´ :
($hora, $minutos, $segundos) = split (/:/,$vars4);
y de ahi con unas pocas operaciones algebraicas, y repitiendo el
proceso para el inicio y el fin, ya sale el numero de segundos total.
Por supuesto, hay formas mas perlisticas de hacerlo, seguro, pero yo
acabo de empezar con perl... ;-)
--
Saludos,
miguel
Más información sobre la lista de distribución Perl