PDA

Ver la Versión Completa : como formar una fecha futura.....


ronimaxh
01-10-2008, 13:41:34
Buen día si descompogo una fecha con la función:

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


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.


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