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)
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
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.
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....
vBulletin v3.6.8, Derechos ©2000-2024, Jelsoft Enterprises Ltd.