Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Rango de fechas (https://www.clubdelphi.com/foros/showthread.php?t=730)

JODELSA 22-05-2003 20:05:25

Rango de fechas
 
Hola a todos;

Tengo un rango de fecha y necesito sacar año, mes y los dias que hay de una a otra;


ejemplo : "fechainicio = 03/20/2003" y fechaFinal "04/23/2004"

resultado = 1 año, 1 mes y 3 dias

le agradezco al que me ayude...

Jose de los santos

cso2000 22-05-2003 20:10:53

Que tal:

Primero le tienes que restar la fecha inicial a la fecha final

pon el en una variable tdatetime

y luego puedes utilizar la funcion de delphi

Decode date de la cual tienes una ayuda en delphi

espero que esto te sirva

Saludos

cso2000 22-05-2003 20:11:58

La variable se llama DecodeDate yo escribi Decode Date

Saludos

jhonny 22-05-2003 20:15:25

Ahora bien...

Se me ocurrre que debes de hacer algo asi:

Por ejemplo en el OnClick de un boton:
Código:

procedure Tform1.botonClick(sender :TObject);
var
  fecharesult :TDate;
  ano, mes, dia :Word;
begin
    fecharesult:=fechafinal-fechainicial;
    decodedate(fecharesult,ano,mes,dia);
    label1.caption:=inttostr(ano)+' Año, '+inttostr(mes)+
    ' mes, '+' y '+inttostr(dia)+ ' dias';
end;


//donde label1 es un TLabel

Y eso es todo:)

//Carambolas mientras escribia se me ha adelantado cso2000 :cool:

cso2000 22-05-2003 20:20:03

Retiro lo dicho esa operacion no sirve estoy buscando el ejemplo correcto espero no tardar demasiado


mil disculpas.

jhonny 22-05-2003 20:25:59

Bueno cso2000, tal vez no te dio el resultado deseado debido a que haz dicho:
Cita:

Primero le tienes que restar
la fecha inicial a la fecha final
Cuando en realidad es todo lo contrario, es final-inicial, pues final es mayor que inicial.

Ohhh disculpa cso2000 he mal interpretado tu mensaje...pues efectivamente no funciona

jhonny 22-05-2003 20:35:37

tal vez con esto???

procedure Tform1.botonClick(sender :TObject);
var
ano1, mes1, dia1, ano2, mes2, dia2 :Word;
begin
decodedate(fechainicial,ano1,mes1,dia1);
decodedate(fechafinal,ano2,mes2,dia2);
label1.caption:=inttostr(ano2-ano1)+' Año, '+inttostr(mes2-mes1)+
' mes, '+' y '+inttostr(dia2-dia1)+ ' dias';
end;

jhonny 22-05-2003 20:39:54

Si si si, a si si funciona, ahora si que funciono bien, con el segundo codigo, si me funciono bien:D :D :D...

Ahora si espero te sirva de ayuda JODELSA ;)

cso2000 22-05-2003 20:45:43

Muy bien jhonny ya me estaba enbolando

y tu te viste muy eficiente

eso lo veo muy estimulante


Saludos a todos.


La franja horaria es GMT +2. Ahora son las 09:50:05.

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