Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Mundo Perl » Módulos » Minutos entre fechas  RESUELTO Responder al tema
Nuevo tema


Página 1 de 1  [ 5 mensajes ] 
 
Nota 2011-05-27 03:46 @198

Perlero Nuevo
Registrado: 2011-05-24 05:59 @291
Mensajes: 20
Minutos entre fechas
Hola, Tengo dos fechas tipo DateTime y necesito obtener la cantidad de horas o minutos entre ellas.
Syntax: [ Download ] [ Hide ]
  1. use Date:Manip; 
  2.  
  3. my $dia_hora_actual = ParseDate("now"); 
  4.  
  5. my $dia_hora_vence = ParseDate('2011-05-25 12:05:55'); 
  6.  
  7.  # Diferencia de minutos entre ambas 
  8.  #----------------------------------------------------------------------------- 
  9.  my $delta = DateCalc($dia_hora_actual , $dia_hora_vence , 3); 
  10.  my $diferencia_minutos = int Delta_Format($delta, 1 ,"%mt"); 
  11.  


¿Hay algún error? porque no obtengo lo que necesito.

Muy agradecido.


Nota 2011-05-27 04:13 @217
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10268
Re: Minutos entre fechas
¿DateTime? ¿No será Date::Manip?

_________________
JF^D Perl programming


Nota 2011-05-27 04:31 @230

Perlero Nuevo
Registrado: 2011-05-24 05:59 @291
Mensajes: 20
Re: Minutos entre fechas
Al decir que los tipos de datos son DateTime me refiero a datos con formato fecha, hora, no hago referencia al módulo utilizado. En el código aparece que el módulo utilizado para obtener lo que necesito es Date::Manip. Gracias.


Última edición por explorer el 2011-05-27 10:20 @472, editado 1 vez en total
modulo -> módulo


Nota 2011-05-27 11:30 @520
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10268
Re: Minutos entre fechas
Perdona, es que es mucho más normal, hoy en día, usar DateTime, que Date::Manip.

El siguiente código sí que me funciona:
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use Date::Manip;
  3.  
  4. my $dia_hora_actual = ParseDate("now");
  5.  
  6. print "  [$dia_hora_actual]\n";
  7.  
  8. my $dia_hora_vence = ParseDate('2011-05-25 12:05:55');
  9.  
  10. print "- [$dia_hora_vence]\n";
  11.  
  12. my $delta = DateCalc( $dia_hora_vence, $dia_hora_actual , 3);
  13.  
  14. print "=" x 20, "\n";
  15. print "  [$delta] bussines\n";
  16.  
  17. my $diferencia_minutos = Delta_Format($delta, 0 ,"%mt");  
  18.  
  19. print "= [$diferencia_minutos] minutos\n";
  20.  
  21. $delta = DateCalc( $dia_hora_vence, $dia_hora_actual);
  22. print "  [$delta] normal\n";
  23.  
  24. $diferencia_minutos = Delta_Format($delta, 0, "%mt");
  25.  
  26. print "= [$diferencia_minutos] minutos\n";
  27. __END__
  28.   [2011052718:29:15]
  29. - [2011052512:05:55]
  30. ====================
  31.   [+0:0:+0:+2:4:54:5] bussines
  32. = [3174] minutos
  33.   [+0:0:+0:2:6:23:20] normal
  34. = [3263] minutos
  35.  
Fíjate que

a) has puesto el modo de cálculo en '3', por lo que estás en modo 'bussines' (en mi ejemplo, saco los dos valores, para compararlos); y

b) el número de minutos que salen es positivo porque DateCalc está calculando ($dia_hora_actual - $dia_hora_vence), y $dia_hora_vence es menor que la fecha actual.

El signo de los minutos indica si ha sobrepasado o no una fecha a la otra.

_________________
JF^D Perl programming


Nota 2011-05-27 15:17 @678

Perlero Nuevo
Registrado: 2011-05-24 05:59 @291
Mensajes: 20
Re: Minutos entre fechas  RESUELTO
Resultó correcto. Gracias.


Responder al tema  [ 5 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO