Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Como trabajar con fechas? (https://www.clubdelphi.com/foros/showthread.php?t=568)

judoboy 19-05-2003 09:52:05

Como trabajar con fechas?
 
Hola a todos, estoy haciendo una comparación de fechas donde me devuelve la diferencia de horas entre ambas.

Ahora bien quiero hacer comparaciones, por ejemplo si es menor de 12 horas que haga una cosa si es mayor otra.

Si el resultado que me devuelve la diferencia es de tipo 16:43:27 , expresado en hh/mm/ss.

judoboy 19-05-2003 10:08:32

Una cosita más, es que solo me devuelve la diferencia de 24 horas no tiene en cuenta el dia.

Y si pongo las variables de tipo DateTime, me devuelve las horas bien, pero en la fecha me pone 31/12/1899

Código:

Inicio:=17/05/2003 17:00:00
Fin:=18/05/2003    09:00:00
Total:=Fin-Inicio;

Total:= 31/12/1899 16:00:00

Como veis me devuelve las horas sin importarle el día, como lo puedo hacer bien.

Para esto estoy utilizando DElphi 5, asi que no tengo disponibles las funciones HoursBeetwen

Er_Manué 19-05-2003 10:30:30

realmente te devuelve bien la diferencia de días y horas, lo que pasa que no como nos gustaría;)

el valor que te da Total:= 31/12/1899 16:00:00 es la direncia real de días y horas. 16 Horas y ha pasado un día, la fecha TDateTime comienza el 30/12/1899 asi k si te fijas en tu resultado 31/12/1899 ya te está indicando que ha pasado un día entre las fecha que querias comparar.

Salu2

__cadetill 19-05-2003 10:32:35

Hola

Acabo de hacer este ejemplo

Código:

procedure TForm1.Button1Click(Sender: TObject);
var i : Real;
    Dias : integer;
    Horas : TTime;
begin
    i := (Data1.Date + Time1.Time) - (Data2.Date + Time2.Time);

    Dias := Trunc(i);
    Horas := i - Dias;

    ShowMessage('Diferencia de ' + IntToStr(Dias) +
              ' dias y ' + TimeToStr(Horas) + ' horas');
end;

En el form he puesto 2 TDateTimePicker con la propiedad kind a dtkDate, 2 TDateTimePicker con la propiedad kind a dtkTime y un TButton.

A ver si te sirve este ejemplo

judoboy 19-05-2003 11:28:58

Perfecto, gracias cadetill, si que me sirve el ejemplo. Ya lo he solucionado.


La franja horaria es GMT +2. Ahora son las 22:26:51.

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