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