Descobrir o Mês Anterior e Próximo: TDateTime
esta Quick Tips, irei mostra como podemos descobrir qual é o próximo mês, e qual é o mês anterior a partir de uma determinada data.
Olá galera, nesta Quick Tips, irei mostra como podemos descobrir qual é o próximo mês, e qual é o mês anterior a partir 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 prjDataMes.dproj.
Vamos agora adicionar :
1 – Button ( Button1 )
1 – TDateTimePicker (DateTimePicker1)
Vamos inicialmente criar duas funções :
- function Data_Proximo_Mes(xData: TDateTime): Integer;
- function Data_Anterior_Mes(xData: TDateTime): Integer;
Veja como ficará a declaração das mesmas :
unit uFrmPrincipal;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls;
type
TFrmPrincipal = class(TForm)
Button1: TButton;
DateTimePicker1: TDateTimePicker;
procedure Button1Click(Sender: TObject);
private
function Data_Proximo_Mes(xData: TDateTime): Integer;
function Data_Anterior_Mes(xData: TDateTime): Integer;
{ Private declarations }
public
{ Public declarations }
end;
var
FrmPrincipal: TFrmPrincipal;
implementation
{$R *.dfm}
Agora vamos implementar as duas funções :
Data_Proximo_Mes
{
Veja nesta função como obter o mês seguinte a partir de uma determinada data.
Parametros de Entrada : xData : TDateTime
Retorno : Integer
}
Function TFrmPrincipal.Data_Proximo_Mes(xData: TDateTime): Integer;
Var
Year, Month, Day: Word;
MesAtual : Integer;
NovMes : Integer;
Begin
Result := -1;
Try
DecodeDate(xData, Year, Month, Day);
MesAtual := Integer(Month);
NovMes := ((MesAtual + 12 + 1) mod 12);
If NovMes = 0 Then NovMes := 12;
Result := NovMes;
Except
Result := -1;
End;
End;
Data_Anterior_Mes
{
Veja nesta função como obter o mês anterior a partir de uma determinada data.
Parametros de Entrada : xData : TDateTime
Retorno : Integer
}
Function TFrmPrincipal.Data_Anterior_Mes(xData: TDateTime): Integer;
Var
Year, Month, Day: Word;
MesAtual : Integer;
NovMes : Integer;
Begin
Result := -1;
Try
DecodeDate(xData, Year, Month, Day);
MesAtual := Integer(Month);
NovMes := ((MesAtual + 24 - 1) mod 12);
If NovMes = 0 Then NovMes := 12;
Result := NovMes;
Except
Result := -1;
End;
End;
Agora vamos usar as duas funções através do clique do Button1
procedure TFrmPrincipal.Button1Click(Sender: TObject);
begin
ShowMessage(' O próximo mês é : ' +
IntToStr(Data_Proximo_Mes(DateTimePicker1.DateTime)));
ShowMessage(' O mês anterior é : ' +
IntToStr(Data_Anterior_Mes(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
Artigos relacionados
-
Artigo
-
Artigo
-
Artigo
-
Artigo
-
Artigo