• Publicidad

Extraer información de POSIX qw(strftime)

¿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.

Extraer información de POSIX qw(strftime)

Notapor zozo666 » 2007-09-10 10:40 @486

Hola perleros, necesitaría que me den una mano con esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use POSIX qw(strftime);
my $f_aux = 7 * 86400;
my $f_baja = strftime('%Y-%m-%d', localtime(time + $f_aux));
print $f_baja;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Esto lo que hace es sumarle al día de hoy 7 días.
Lo que yo necesitaría no es sumárselo al día de hoy, sino al día que yo ingrese.

Por ejemplo a 2007/5/6 sumarle 7 días y me quede 2007/7/13.

¿Qué forma hay para hacer esto?
zozo666
Perlero nuevo
Perlero nuevo
 
Mensajes: 139
Registrado: 2007-05-26 10:36 @483

Publicidad

Notapor kidd » 2007-09-10 10:48 @492

Hace tiempo se habló de ello en el foro:
viewtopic.php?t=804

Saludos
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor Kiloko » 2007-09-10 10:48 @492

¿Al día en que tu ingresaste? ¿A dónde, al sistema? ¿Al programa?, :?:
Nunca interrumpas a tu enemigo cuando está cometiendo un error
Napoleón Bonaparte
Avatar de Usuario
Kiloko
Perlero nuevo
Perlero nuevo
 
Mensajes: 243
Registrado: 2007-07-10 18:26 @810
Ubicación: MOnterrey NL

Notapor zozo666 » 2007-09-10 10:56 @497

mmmm....lo veo muy complicado lo del otro foro, yo quiero algo bien sencillo: sumarle siete días al día que yo ingreso en el programa. Por ejemplo:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$dia = 2007/5/5;
$diaqquiero = $dia + (7 días)
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Esa es la lógica que quiero, sumarle a los días que puse yo, siete más.
zozo666
Perlero nuevo
Perlero nuevo
 
Mensajes: 139
Registrado: 2007-05-26 10:36 @483

Notapor explorer » 2007-09-10 11:30 @520

Hay varias formas...

La más sencilla es pasar los componentes de la fecha (día, mes y año) a la función timelocal() del módulo Time::Local, y así pasas de una fecha a segundos desde el epoch. Luego, le sumas los segundos que hay en siete días. Y finalmente pasas los segundos a fecha con la función localtime().

La forma complicada, pero completa, es la indicada por kidd.

Y la forma recomendada es usando DateTime:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use DateTime;
my $fecha = DateTime->new(
    year  => 2007,
    month => 5,
    day   => 5,
);

$fecha->add( days => 7 );

print $fecha->ymd('/'); # 2007/05/12
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
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

Notapor zozo666 » 2007-09-10 12:35 @566

Muchísimas gracias explorer, más práctico imposible. Adiós
zozo666
Perlero nuevo
Perlero nuevo
 
Mensajes: 139
Registrado: 2007-05-26 10:36 @483


Volver a Intermedio

¿Quién está conectado?

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