Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Restar dos fechas en delphi (https://www.clubdelphi.com/foros/showthread.php?t=86941)

jeremiselxi 25-10-2014 02:22:42

Restar dos fechas en delphi
 
Buenas tardes.

De antemano les doy las gracias por la ayuda que me puedan ayudar.

Estoy realizando un proyecto en la cual la administración de usuario debe contener lo siguientes campos (Intentos fallidos, Cantidad de días Maximo para realizar el cambio de la contraseña).

En este sentido realizando una prueba con dos TDateTimePicker

y lo que deseo es que si pongo en el TDateTimePicker1.date una fecha y en el otro TDateTimePicker2.date elijo la misma fecha al presionar un botón el valor sea 0, ya que a la final al restar dos numeros iguales da 0, y si el TDateTimePicker2.date elijo un dia mas que el día TDateTimePicker1.date al realizar la resta me diga que el valor es 1 porque hay un día de por medio.

Espero haberme explicado.

Adjunto el codigo que estoy tratando de hacer:
Código Delphi [-]

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c:string;

begin

a:= datetostr(dt1.Date);
b:= datetostr(dt2.Date);

ShowMessage(datetostr((dt2.Date - dt1.Date )));
end;

end.
Es con Delphi 2009.

nlsgarcia 25-10-2014 04:12:32

jeremiselxi,

Cita:

Empezado por jeremiselxi
...Restar dos fechas en Delphi 2009...

:rolleyes:

Revisa este código:
Código Delphi [-]
...
uses DateUtils;
...
var
  fromdate, toDate : TDateTime;

begin
  // Set up our date variables
  fromDate := EncodeDateTime(2000, 02, 26, 10, 0, 0, 0);
  toDate   := EncodeDateTime(2000, 02, 29,  9, 0, 0, 0);

  // Display these dates and the days between them
  ShowMessage('From date = '+DateTimeToStr(fromDate));
  ShowMessage('To   date = '+DateTimeToStr(toDate));
  ShowMessage('Whole days difference = '+
              IntToStr(DaysBetween(toDate, fromDate))+' days');
end;
...
Tomado de DaysBetween :cool:

Revisa esta información:
Espero sea útil :)

Nelson.

ecfisa 25-10-2014 04:48:36

Hola jeremiselxi.

Código Delphi [-]
uses DateUtils; // necesario para DaysBetween
...
var
  d1, d2: Integer;
begin
  // 1)  usando DaysBetween
  d1:= DaysBetween(DateTimePicker1.Date, DateTimePicker2.Date);
  // 2)  usando resta
  d2:= Trunc(DateTimePicker2.Date - DateTimePicker1.Date);  
  Caption:= Format('%d %d',[d1, d2]);
end;

Saludos :)

jeremiselxi 25-10-2014 04:58:51

Cita:

Empezado por nlsgarcia (Mensaje 483800)
jeremiselxi,


:rolleyes:

Revisa este código:
Código Delphi [-]
...
uses DateUtils;
...
var
  fromdate, toDate : TDateTime;

begin
  // Set up our date variables
  fromDate := EncodeDateTime(2000, 02, 26, 10, 0, 0, 0);
  toDate   := EncodeDateTime(2000, 02, 29,  9, 0, 0, 0);

  // Display these dates and the days between them
  ShowMessage('From date = '+DateTimeToStr(fromDate));
  ShowMessage('To   date = '+DateTimeToStr(toDate));
  ShowMessage('Whole days difference = '+
              IntToStr(DaysBetween(toDate, fromDate))+' days');
end;
...
Tomado de DaysBetween :cool:

Revisa esta información:

Espero sea útil :)

Nelson.



Buenas noches Nelson.

En delphi 2009 me da error en el codigo "DaysBetween".

No se por que?


Código Delphi [-]
procedure TForm1.Button2Click(Sender: TObject);
var
fromdate, toDate : TDateTime;

begin
 // Set up our date variables
  fromDate := EncodeDate(2000, 02, 26);
  toDate   := EncodeDate(2000, 02, 29);

  // Display these dates and the days between them
  ShowMessage('From date = '+DateTimeToStr(fromDate));
  ShowMessage('To   date = '+DateTimeToStr(toDate));
  ShowMessage('Whole days difference = '+  IntToStr(DaysBetween(toDate, fromDate))+' days');

end;

end.

nlsgarcia 25-10-2014 05:08:36

jeremiselxi,

Cita:

Empezado por jeremiselxi
...En Delphi 2009 me da error en el código "DaysBetween"...

:rolleyes:

Pregunto:

1- ¿Que error te da en Delphi 2009? :confused:

2- ¿Incluistes la unidad DateUtils?.

3- ¿Revisastes el código sugerido en el Msg #3?.

Espero sea útil :)

Nelson.

jeremiselxi 25-10-2014 16:32:20

Muchas gracias el error fue porque no incluí la librería.

Saludos


La franja horaria es GMT +2. Ahora son las 12:37:31.

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