Operações com Datas Metodos Auxiliares
Autor: MorfikBR | Publicado: 2011-04-21T13:48:00-07:00

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