sexta-feira, 19 de fevereiro de 2010

Funções para manipulação de datas

Salve salve amigos,

Muitos ainda desconhecem, mas o Delphi possui várias funções pré-definidas para manipulação de datas. A maioria delas se encontra na unit DateUtils, mas existem também algumas da unit SysUtils.

O Delphi lhe dará uma lista de todas as funções disponíveis. Entre algumas das que considero mais úteis estão:

- retorna o número de horas entre 2 horários
function HourSpan(const ANow: TDateTime; const AThen: TDateTime): Double;

- número de anos entre 2 datas
function YearSpan(const ANow: TDateTime; const AThen: TDateTime): Double;

- extrai o dia de uma data
function DayOf(const AValue: TDateTime): Word;

- extrai o mês de uma data
function MonthOf(const AValue: TDateTime): Word;

- extrai o ano de uma data
function YearOf(const AValue: TDateTime): Word;

- extrai a hora
function HourOf(const AValue: TDateTime): Word;

- extrai o minuto
function MinuteOf(const AValue: TDateTime): Word;

- extrai o segundo
function SecondOf(const AValue: TDateTime): Word;


Ainda há certos detalhes a serem observados. É importante tomar cuidado e ler a ajuda do delphi antes de usar a função para ter certeza do resultado. Por exemplo, a unit dateutils possui esta função:

function DayOfTheWeek(const AValue: TDateTime): Word;

Ela retorna o dia da semana, mas considerando que a semana começa por segunda-feira (1 = segunda, 2 = terça ... 7 = domingo). Já a unit sysutils possui a seguinte função:

function DayOfWeek(const AValue: TDateTime): Word;

Esta função faz a mesma coisa, retorna o dia da semana, mas considerando o domingo como primeiro dia (1 = domingo, 2 = segunda ... 7 = sábado)!

Outra função, muito útil, mas que não está disponível em dateutils, mas sim em sysutils:

function IncMonth(const DateTime: TDateTime; NumberOfMonths: Integer): TDateTime;

Esta função soma ou subtrai meses de uma data. Exemplos:

IncMonth(25/10/2008, 1) = 25/11/2008
IncMonth(25/10/2008,-1) = 25/09/2008
IncMonth(25/10/2008, 2) = 25/12/2008



Take care

Um comentário:

Anônimo disse...

Marcos Antonio Moreira gostaria de ser seu amigo,pois sou iniciante em programação linguagem Delphi 2010, tenho muita vontade de aprender a programar o meu e-mail é rodrigo_bezerra88@hotmail.com