Olá pessoal nesta Quick iremos ver cálculos de datas no Delphi.

 

                É muito comum ocorrer situações em que o programador necessita desenvolver programas que efetuem cálculos com data. Assim sendo, serão apresentados neste artigo alguns exemplos de utilização desses conceitos.

 

Cálculo com Data

 

                Para exemplificar a utilização do cálculo com datas, serão apresentados em seguida dois exemplos de programas, um que efetuará o cálculo da idade de um indivíduo e o segundo que efetuará o cálculo de uma prestação de um título a ser pago.

 

Primeiro exemplo

 

                Considere o programa seguinte que solicita a data de nascimento de uma pessoa e em seguida apresenta a idade da pessoa em anos.

                A figura a seguir mostra o formato que deve possuir o formulário com a definição dos elementos visuais.

 



Coloque o seguinte código no botão processar:

 

procedure TfrmIdade.Button1Click(Sender: TObject);

var

ATUAL, NASC: TDateTime;

ANOS: Real;

begin

NASC:=StrToDate(Edit1.Text);

ATUAL:=Date;

ANOS:=Int((ATUAL - NASC) / 365.25);

label3.caption:=FormatFloat('0', ANOS);

end;

 

                Observe no código anterior a utilização do tipo de dado TDateTime, que tem por finalidade representar valores numéricos para a definição de tempo de calendário(Data) e tempo de horário.

 

                No programa anterior o programa transfere para a variável NASC o valor da data informada no campo EDIT1.text por meio da função StrToDate. Em seguida a variável ATUAL é carregada com o valor da data atual por meio da função Date. Depois a variável ANOS recebe o valor inteiro (por intermédio da função Int) da diferença dos valores entre as variáveis ATUAL e NASC que são divididos pelo valor 365.26 (um ano possui 356 dias e 6 horas, que corresponde ao coeficiente 365.25).

 

Segundo Exemplo

 

                Considere o seguinte programa de caixa para um sistema de contas a receber. Este programa deve ser informado a data de vencimento de um título e do seu valor nominal para poder executar uma das seguintes ações:

 

·         Se a data de pagamento do título é igual à data de vencimento, o valor a ser pago será o próprio valor nominal informado;

·          Se a data de pagamento do título for maior que a data de vencimento, o valor a ser pago deve ser acrescido de uma de 1% ao dia;

·          Se a data de pagamento do título for menor que a data de vencimento, o valor a ser pago deve ser decrescido de um desconto de 5%.

 

                Para efetuar o cálculo de cobrança de multa do título vencido, será utilizada a fórmula:

COBRAR:=VALOR +(VALOR * 0.10 * TEMPO), em que o VALOR é o valor nominal do título, 0.01

é a taxa de multa e TEMPO é a diferença existente entre a data de pagamento e a data de vencimento em meses.

 

                Para efetuar o cálculo do desconto, será utilizada a fórmula: COBRAR :=VALOR –(VALOR *

0.05), em que VALOR é o valor nominal do título e 0.05 é a taxa de desconto.

 

Monte o seu formulário de acordo com o seguir:

 



Após concluir a montagem do formulário, serão dadas as instruções para a montagem do programa, no botão processar coloque o seguinte código:

 

procedure TForm2.btnProcessarClick(Sender: TObject);

var

VALOR, TEMPO, COBRAR: Real;

VENCTO, PAGTO:TDateTime;

begin

DateSeparator:='/';

ShortDateFormat:='dd/mm/yyyy';

ThousandSeparator:='.';

VALOR:=StrToFloat(edit1.Text);

VENCTO := StrToDate(Edit2.Text);

PAGTO:=StrToDate(Edit3.Text);

if (PAGTO = VENCTO) then

COBRAR:= VALOR

else

if (PAGTO > VENCTO) then

begin

TEMPO:=PAGTO - VENCTO;

COBRAR :=VALOR + (VALOR * 0.01 * TEMPO);

end

else

COBRAR:=VALOR - (VALOR * 0.05);

label4.Caption:=FormatFloat('#,##0.00',COBRAR);

Edit1.SetFocus;

end;

Vou ficando por aqui, na próxima continuaremos trabalhando com Data no Delphi

Um abraço

Rubens Antunes

Leia todos artigos da série