[bcn-pm] trabajando con fechas
Salvador Fandino
sfandinoayahoo.com
Dij Abr 3 06:51:40 PDT 2008
> From: Arnau Bria <arnau en emergetux.net>
> tengo que parsear un fichero en el que tengo una cantidad de horas
> expresadas así: HH:MM:SS.
> Quiero coger esa fecha, y factorizarla, es decir, multiplicarla
> dividirla por un factor y volver a representarla como estaba.
>
>
> Llevo un rato buscando módulo en el cpan que trabajen con date, pero no
> acabo de encontrar algo que simplemente convierta ese formato a, por
> ejemplo, segundos. Pero al ser una fecha relativa (no me importa el día
> que es hoy, ni epoch ni nada) no encuentro nada que me satisfaga.
>
> Mi solución es multiplicar las hora, los minutos y tal, es decir,
> hacerme yo la función que lo convierta, pero me extraña que no haya
> nada ya que lo haga, y además mi poca experiencia buscando cositas
> amplia mi duda...
Hoy en dia, el modulo mas o menos estandar para manipular fechas y tiempos es DateTime, pero usarlo para algo tan simple es como matar moscas a cañonazos.
Todo lo que necesitas son un par de funciones para convertir ese formato a segundos y al viceversa. Luego, con el tiempo en segundos puedes simplemente manipularlo como un entero, multiplicarlo, dividirlo, etc.
# sin probar...
sub myfmt2seconds {
my $t = shift;
$t =~ /^(\d+):(\d+):(\d+)$/ or die "...";
$1 * 3600 + $2 * 60 + $3;
}
sub seconds2myfmt {
my $s = shift;
sprintf("%02d:%02d:%02d", $s / 3600, ($s / 60) % 60, $s % 3600);
}
Saludos,
- Salva
____________________________________________________________________________________
You rock. That's why Blockbuster's offering you one month of Blockbuster Total Access, No Cost.
http://tc.deals.yahoo.com/tc/blockbuster/text5.com
Més informació de la llista de correu Barcelona-pm