• Publicidad

Minutos entre fechas

Aquí encontrarás todo lo que sea específicamente acerca de módulos de Perl. Ya sea que estás compartiendo tu módulo, un manual o simplemente tienes una duda acerca de alguno.

Minutos entre fechas

Notapor silva » 2011-05-27 03:46 @198

Hola, Tengo dos fechas tipo DateTime y necesito obtener la cantidad de horas o minutos entre ellas.
Sintáxis: [ Descargar ] [ Ocultar ]
  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.
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Publicidad

Re: Minutos entre fechas

Notapor explorer » 2011-05-27 04:13 @217

¿DateTime? ¿No será Date::Manip?
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Minutos entre fechas

Notapor silva » 2011-05-27 04:31 @230

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
Razón: modulo -> módulo
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291

Re: Minutos entre fechas

Notapor explorer » 2011-05-27 11:30 @520

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:
Sintáxis: [ Descargar ] [ Ocultar ]
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.  
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
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 & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Minutos entre fechas

Notapor silva » 2011-05-27 15:17 @678

Resultó correcto. Gracias.
silva
Perlero nuevo
Perlero nuevo
 
Mensajes: 82
Registrado: 2011-05-24 05:59 @291


Volver a Módulos

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados