quinta-feira, 21 de abril de 2011

Operações com Datas Metodos Auxiliares

Agora, neste exato momento, você verá algumas formas de tratar datas com as bibliotecas do Morfik. Assim como no vimos no artigo "Operações com Strings Métodos Auxiliares", para trabalharmos com Data Morfik também conta com classes auxiliares que são bastante úteis para nossas aplicações.

Veremos a seguir os métodos contidos na biblioteca SystemHelperMethods, para manipulação do tipo TDateTime:

Adicionando Removendo parte de uma data.

Todos os métodos para adicionar ou remover parte de uma data começam com ADD (adicionar), no entanto, para remover parte de uma data, basta passarmos um valor negativo. Vamos ver agora como fazer isso para cada parte da data atual:

var
dData : TDateTime;
begin
dData := Now; // Atribuindo a data atual a variável

{Ano}
dData.AddYear(1); // próximo ano
dData.AddYear(-1); // ano anterior

{Mês}
dData.AddMonths(1); // próximo mês
dData.AddMonths(-1); // mês anterior

{Dia}
dData.AddDays(1); // amanhã)
dData.AddDays(-1); // ontem)

{Hora}
dData.AddHours(1); // Adicionando uma hora
dData.AddHours(-1); // Removendo uma hora

{Minuto}
dData.AddMinutes(1); // Adicionando um minuto
dData.AddMinutes(-1); // Removendo um minuto

{Segundo}
dData.AddSeconds(1); // Adicionando um segundo
dData.AddSeconds(-1); // Removendo um segundo

{Milisegundo}
dData.AddMilliseconds(1); // Adicionando um milisegundo
dData.AddMilliseconds(-1); // Removendo um milisegundo

end;

Obtendo parte de uma data

var
dData : TDateTime;
begin
dData := Now; // Atribuindo a data atual a variável
dData.Year; // Ano
dData.Month; // Mês
dData.Day; // Dia
dData.Hour; // Hora
dData.Minute; // Minuto
dData.Second; // Segundo
dData.MilliSecond; // milisegundo

dData.Today; // Retorna a parte correspondente ao dia, mês e ano de uma data
dData.Time; // Retorna somente a parte que representa a hora da data (Minuto, Segundo e Milisegundo);
end;

Obtendo informações de uma data

var
dData : TDateTime;
begin
dData := Now; // Atribuindo a data atual a variável

{Retornando o número que representa o dia da semana de uma data informada.}
DayOfTheWeek(dData); // O resultado será entre 1=Domingo até 7=Sábado

{Retornando a quantidade de dias do ano da data informada}
DayOfTheYear(dData); // O resultado será entre 1~366

{Retornando a quantidade de dias de um mês da data informada}
DaysInMonth(2011,02); // O resultado será neste caso "28"

{Sabendo se o ano de uma data é bissexto}
isLeapYear(dData); // Retorna True ou False se o ano da data é bissexto

end;

Comparação entre datas

var
Data_A, Data_B : TDateTime;
begin

{Comparando uma data com outra}

Data_A.CompareTo(Data_B);
{Este método irá retornar um inteiro com os possíveis valores:
-1 Quando Data_B é menor que a Data_A
0 Quando que Data_A e Data_B são iguais
1 Quando Data_B for maior que Data_A
}

// Comparando duas datas
Compare(Data_A, Data_B);

{Este método irá retornar um inteiro com os possíveis valores:
-1 Quando Data_B é menor que a Data_A
0 Quando que Data_A e Data_B são iguais
1 Quando Data_B for maior que Data_A
}

CompareDate(Data_A, Data_B); // Compara as datas ignorando as horas
CompareTime(Data_A, Data_B); // Compara somente as horas de uma data
CompareDateTime(Data_A, Data_B); // Compara as datas inclusive os milisegundos

end;

Convertento datas

dData.ToString; // Retorna a data no formato String;
dData.FromString; // Retorna a data de uma string somente se esta for uma data válida.

Estas são as principais rotinas para manipulação de datas em nossos sistemas, existem outros métodos para tratamento de datas e horas que devem ser explorados conforme sua aplicação, verifique na biblioteca do Morfik e comece a criar suas funções específicas para que tenha um melhor aproveitamento.

Não deixem de participar dos canais MorfikBR para tirar suas dúvidas com a comunidade.

grato.

Carlos Eduardo Paulino
cadumicro@hotmail.com

MorfikBR
Blogs : www.morfikbr.wordpress.com / www.morfikbr.blogspot.com
Grupo : http://br.groups.yahoo.com/group/Morfikbr/

Twitter : www.twitter.com/morfikbr
Youtube : http://www.youtube.com/morfikbr
Contato : morfikbr@gmail.com / morfikbr@yahoo.com.br

Nenhum comentário:

Postar um comentário