Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   como formar una fecha futura..... (https://www.clubdelphi.com/foros/showthread.php?t=60405)

ronimaxh 01-10-2008 13:41:34

como formar una fecha futura.....
 
Buen día si descompogo una fecha con la función:
Código Delphi [-]
DecodeDate(date,periodo,mes,dia);
// para hacer unos calculos, luego quiero asignar una fecha futura cambiando el //mes y el periodo, cuando quiero la fecha futura en el formato original de fecha como lo hago.

ejemplo:

si periodo=2008;
mes=11;
dia=14;

fecha_futura:=periodo+mes+dia; //(me da una fecha erronea, quiero la fecha futura real)

Caro 01-10-2008 13:46:29

Hola ronimaxh, para incrementar años a una fecha cuentas con la función IncYear y par incrementar meses la función IncMonth de la unidad Dateutils.

Saluditos

tcp_ip_es 01-10-2008 13:54:32

a parte de lo que te comenta Caro, creo que lo que preguntas es como volver a ponerle el formato fecha sería más o menos asi....

Código Delphi [-]
procedure bla bla ...
var mifecha:tdatetime;
begin 
 mifecha:=strtodate(periodo+'/' + mes + '/' + dia);
end

Caro 01-10-2008 14:07:31

Hola amiguito tcp, creo que no sería necesario volverle a poner formato ni tampoco descomponerlo con DecodeDate, ya que ambas funciones te reciben un DateTime y te devuelven un DateTime.

Código Delphi [-]
var
 FechaFutura : TDateTime;
begin
 FechaFutura := IncYear(Date,1); //Incrementamos un año
 FechaFutura := IncMonth(FechaFutura,2); //Incrementamos 2 meses al resultado anterior
 showmessage(DateTimeToStr(FechaFutura));

Saluditos

tcp_ip_es 01-10-2008 14:24:17

Cita:

Empezado por Caro
Hola amiguito tcp, creo que no sería necesario volverle a poner formato ni tampoco descomponerlo con DecodeDate, ya que ambas funciones te reciben un DateTime y te devuelven un DateTime.

Si yo no me refería a tus funciones ya se que incyear e incmonth reciben y devuelven un date, lo que pasa es que yo entendí a ronimaxh
Cita:

Empezado por ronimaxh
// para hacer unos calculos, luego quiero asignar una fecha futura cambiando el //mes y el periodo, cuando quiero la fecha futura en el formato original de fecha como lo hago.

que lo que queria era que después de hacer un decodedate y tratar los numeros por separado como volver a componer la fecha y por eso le puse el strtodate...

asi que ahora le toca a ronimaxh pronunciarse ;)

ronimaxh 01-10-2008 14:26:08

Gracias amigos no conocia esa función les agradezco mucho.

ContraVeneno 01-10-2008 14:27:48

yo pensé que con "EncodeDate" sería suficiente para volver a formar la fecha.

Caro 01-10-2008 14:37:38

Cita:

Empezado por tcp_ip_es (Mensaje 317398)
Si yo no me refería a tus funciones ya se que incyear e incmonth reciben y devuelven un date, lo que pasa es que yo entendí a ronimaxh
........
que lo que queria era que después de hacer un decodedate y tratar los numeros por separado como volver a componer la fecha y por eso le puse el strtodate...

Lo que yo he entendido es que justamente se refería a los calculos de incrementar años o meses a una fecha, tal vez he entendido mal, como dice contraveneno con EncodeDate también se puede volver a formar la fecha.

Saluditos

tcp_ip_es 01-10-2008 15:45:03

el Contra esta hoy supersimplificator!!! hoy es el día del ahorro :D... siempre seré un novato en esto....


La franja horaria es GMT +2. Ahora son las 10:20:44.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi