PDA

Ver la Versión Completa : Como trabajar con fechas?


judoboy
19-05-2003, 09:52:05
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


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


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.