Ver Mensaje Individual
  #10  
Antiguo 14-04-2007
[egostar] egostar is offline
Registrado
 
Registrado: feb 2006
Posts: 6.557
Reputación: 25
egostar Va camino a la fama
Cita:
Empezado por eldiegofg
Ahora si anduvo bien, muchas gracias. En realidad habia probado todo lo que decis menos pasar la fecha como una cadena. Yo la fecha la asignaba directamente a la variable TdateTime y en el resultado de cualquier operacion me daba cero. Por que se hace eso de asignar como cadena y despues convertirla a date en vez de ingresarla como TdateTime directamente??
No se exactamente porque al pasarlo como tu lo hacías el resultado da cero, pero así sucede, pienso que tal ves esta agregando también la parte Time y eso le provoque alguna inconsistencia a la función DaysBetween.

Pero, si lo que quieres es pasar directamente una variable TDateTime puedes hacer esto y funciona bien.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  fecha: Integer;
  fecha1,fecha2:TDateTime;
begin
  fecha1:= DateTimePicker1.Date;
  fecha2:= DateTimePicker2.Date;
  fecha:=daysbetween(fecha1,fecha2);
  edit1.Text:=floattostr(fecha);
end;
Aqui estoy usando dos componentes adicionales que son los TDateTimePicker con la propiedad Date. Aunque se puede simplificar de otra manera. pero la idea es que observes la diferencia, con el StrtoDate.

Aquí la simplificación del código.

Código Delphi [-]
procedure TForm1.Button1Click(Sender: TObject);
var
  Dias: Integer;
begin
  Dias := daysbetween(DateTimePicker1.Date,DateTimePicker2.Date);
  edit1.Text:=floattostr(Dias);
end;
Salud OS.
__________________
"La forma de empezar es dejar de hablar y empezar a hacerlo." - Walt Disney
Responder Con Cita