• Publicidad

Restar dos fechas

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

Restar dos fechas

Notapor scorpion » 2006-07-06 17:40 @778

Hola a todos...

¿Cómo podría restar dos fechas ??? que el resultado sea en días

¿Cómo podria convertir un timestamp a fecha ??? no necesito las horas, minutos y segundos, solo los días, meses y años...

Gracias por adelantado...

saludos...

lierly
scorpion
Perlero nuevo
Perlero nuevo
 
Mensajes: 21
Registrado: 2006-05-31 16:25 @726

Publicidad

Notapor explorer » 2006-07-06 17:57 @789

En este foro hay muchos mensajes relativos a cálculo de fechas. Usa el sistema de búsqueda.

También hay una respuesta sobre esto en el perlfaq4: How can I compare two dates and find the difference?

En resumen, con el módulo DateTime lo tienes 'casi' todo hecho. Aquí tienes un ejemplo:
Código: Seleccionar todo
#!/usr/bin/perl -l
use DateTime;

my $fecha1 = DateTime->new (
    day     => 15,
    month   => 8,
    year    => 2006,
);

my $hoy = DateTime->now->set_time_zone("local")->truncate( to => 'day' );

my $diferencia = $fecha1->delta_days( $hoy );

print $fecha1;
print $hoy;
print $diferencia->in_units('days');
2006-08-15T00:00:00
2006-07-07T00:00:00
39

$fecha se inicializa con el valor del 15 de julio de este año.
$hoy se inicializa con la fecha actual. Por defecto DateTime lo pone al horario GMT, pero me interesa que siga con la hora actual mía (las 01:15 ahora mismo), y luego, quiero que lo trunque a múltiplo de día (es decir, que la hora sea las 00:00, ya que vamos a hacer diferencias entre días enteros).

Estoy obligado a hacer lo del set_time_zone y el truncate, porque sino, me diría que hay 40 días de diferencia: si yo estoy ahora en las 01:15 del 7 de julio, en realidad todavía son las 23:15 del 6 de julio en horario GMT... (el día anterior, luego suma un día más de diferencia).

Como ves, es muy completo y con pocas líneas te da soluciones.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14475
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado