CompareTime es un función que nos permite comparar tiempo entre dos valores del tipo TDateTime o TTime. Si el valor es del tipo TDateTime, la parte del valor correspondiente a la fecha, es ignorada.
Esta función se encuentra en DateUtils por lo tanto debe agregarse en uses.
La función recibe como parámetros dos constantes del tipo TDateTime y devuelve un TValueRelationship cuyos valores están en el rango -1..1
function CompareTime ( const A: TDateTime; const B: TDateTime ) : TValueRelationship;
Definición según la wiki de Free Pascal.
Los parámetros aceptados son tanto del tipo TDateTime como TTime.
Si los valores son iguales, entonces devuelve 0 (cero).
Si el primer valor es anterior o más temprano que el segundo, entonces devuelve un valor menor a 0 (cero), es decir, negativo.
Si el primer valor es posterior o más tarde que el segundo, entonces devuelve un valor mayor a 0 (cero), es decir, positivo.
El valor retornado por la función puede almacenarse en una variable del tipo Integer y si bien la documentación habla de valores mayores, iguales o menores a 0 (cero), siendo del tipo entero entonces solo debería retornar 1, 0 o -1.
Ejemplo:
Código:
unit Unit1;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, DateTimePicker, Forms, Controls, Graphics, dateutils,
Dialogs, StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
btnComparar: TButton;
DateTimePicker1: TDateTimePicker;
DateTimePicker2: TDateTimePicker;
Label1: TLabel;
Label2: TLabel;
Memo1: TMemo;
procedure btnCompararClick(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.lfm}
{ TForm1 }
procedure TForm1.btnCompararClick(Sender: TObject);
begin
CASE CompareTime(DateTimePicker1.Time,DateTimePicker2.Time) of
1 : Memo1.Append('Llegó temprano');
0 : Memo1.Append('Llego en horario.');
-1 : Memo1.Append('Llegó tarde.');
end;
end;
end.
Descargar el código (.pas y .lfm): CompareTime.7z
No hay comentarios:
Publicar un comentario