Olá galera, nesta Quick Tips, irei mostra como podemos descobrir qual é último dia de uma determinada data.

 

Vamos então criar uma nova aplicação e salvar seu formulário como uFrmPrincipal.pas, já mude seu nome para FrmPrincipal, e salve o projeto como prjultimoDiaMes.dproj.

 

 

Vamos agora adicionar :

1 – Button ( Button1 )

1 – TDateTimePicker (DateTimePicker1)

 

Vamos inicialmente criar uma função:

 

  • function UltimoDiaMes(xData: TDateTime): Integer;

 

Veja como ficará a declaração da mesma :

 

unit uFrmPrincipal;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ComCtrls;

type

TFrmPrincipal = class(TForm)

Button1: TButton;

DateTimePicker1: TDateTimePicker;

procedure Button1Click(Sender: TObject);

private

function UltimoDiaMes(xData: TDateTime): Integer;

{ Private declarations }

public

{ Public declarations }

end;

var

FrmPrincipal: TFrmPrincipal;

implementation

{$R *.dfm}

 

 

 

Agora vamos implementar as duas funções :

UltimoDiaMes

{

Veja nesta função como obter o ultimo dia do mês a partir de uma determinada data.

Parametros de Entrada : xData : TDateTime

Retorno : Integer

}

Function TFrmPrincipal.UltimoDiaMes(xData: TDateTime): Integer;

var

   AnoCorrente : Word;

   MesCorrente : Word;

   DiaCorrente : Word;

   NovoAno : Word;

   NovoMes : Word;

   DayNew : Word;

   Qtd : Integer;

   NovoDia : TDateTime;

Begin

   Result := 30;

   Try

      DecodeDate(xData, AnoCorrente, MesCorrente, DiaCorrente);

      NovoDia := EncodeDate(AnoCorrente, MesCorrente, 26);

      For Qtd := 26 To 32 Do

      Begin

         NovoDia := NovoDia+1;

         DecodeDate(NovoDia, NovoAno, NovoMes, DayNew);

         If NovoMes <> MesCorrente Then

         Begin

            DecodeDate(NovoDia-1, NovoAno, NovoMes, DayNew);

            Result := DayNew;

            Break;

         End;

      End;

   Except

   End;

End;

 

 

Agora vamos usar as duas funções através do clique do Button1

 

procedure TFrmPrincipal.Button1Click(Sender: TObject);

begin

         ShowMessage(IntToStr (UltimoDiaMes(DateTimePicker1.DateTime)));

end;

 

Fico por aqui ate à próxima Quick Tips. Baixe o exemplo completo neste post.

 

Um abraço

 

 

Wesley Y

wyamazack@lithic.com.br