Data por Extenso em uma Aplicação Delphi

Veja nesta Quick Tip como definir uma data por extenso em uma aplicação Delphi através de funções implementadas para retornar o nome de um mês e o dia da semana. Também foram utilizados na aplicação de exemplo os recursos da linguagem para retornar a data do sistema operacional (now); para extrair os atributos dia, mês e ano de uma data (DecodeDate); e, para retornar o dia da semana (DayOfTheWeek).

Caros Amigos,

Pretendo demonstrar neste artigo uma aplicação Delphi para definir uma data por extenso obtendo como resultado, por exemplo: Pato Branco, 3 de janeiro de 2012 (terça-feira).

[1º Passo] Formulário Principal
Observe que as caixas de textos explicativos utilizadas na figura apresentam a ordem sequencial e o nome do componente, a página da sua localização e as propriedades que devem ser alteradas com os respectivos valores.



[2º Passo] implementation
a) Referência a unit "DateUtils" necessária na utilização da função DayOfTheWeek para retornar um valor que corresponde ao dia da semana de uma variável do tipo TDateTime. DayOfTheWeek retorna um valor entre 0 e 6, onde: 0=domingo; 1=segunda-feira; ...; e, 6=sábado. uses DateUtils; b) Função que retorna o nome do mês com os parâmetros: "i" = índice para o vetor "mes"; e, "tipo" = 0 para retornar o nome completo e 1 para o nome abreviado do mês.
function NomeDoMes(i: word; tipo: integer): string; const mes: array[1..12] of string = ('janeiro', 'fevereiro', 'março', 'abril', 'maio', 'junho', 'julho', 'agosto', 'setembro', 'outubro', 'novembro', 'dezembro'); begin if (tipo = 0) then NomeDoMes := mes[i] // extenso // a função "copy" retorna os 3 primeiros caracteres de "mes[i]" else NomeDoMes := copy(mes[i], 1, 3); // abreviado end; c) Função que retorna o dia da semana com os parâmetros: "i" = índice para o vetor "diasem"; e, "tipo" = 0 para retornar o nome completo e 1 para o nome abreviado do dia da semana.
function DiaDaSemana(i: word; tipo: integer): string; const diasem: array[0..6] of string = ('domingo', 'segunda-feira', 'terça-feira', 'quarta-feira', 'quinta-feira', 'sexta-feira', 'sábado'); begin if (tipo = 0) then DiaDaSemana := diasem[i] // extenso // a função "copy" retorna os 3 primeiros caracteres de "diasem[i]" else DiaDaSemana := copy(diasem[i], 1, 3); end; d) Função que retorna a data por extenso com os parâmetros: "cidade" = nome da cidade; e, "dt" = data.
function DataPorExtenso(cidade: string; dt: TDateTime): string; var d, m, a, ds: word; begin // retorna os valores ano, mês e dia da variável "dt" DecodeDate(dt, a, m, d); ds := DayOfTheWeek(dt); DataPorExtenso := cidade + ', ' + IntToStr(d) + ' de ' + NomeDoMes(m, 0) + ' de ' + IntToStr(a) + ' (' + DiaDaSemana(ds, 1) + ').'; end; e) Evento "onClick" do botão "Extenso da Data".
procedure TForm1.Button1Click(Sender: TObject); begin // now = data atual (data do sistema operacional) Edit2.Text := DataPorExtenso(Edit1.Text, now); end; [3º Passo] Executando a Aplicação
Informar o nome da cidade e pressionar o botão "Extenso da Data" e o seguinte resultado será exibido:


As funções implementadas: NomeDoMes, DiaDaSemana e DataPorExtenso, poderiam ser disponibilizadas em uma unidade ou biblioteca de códigos (unit). As units representam no Delphi a forma de disponibilizar um conjunto de subprogramas (functions e/ou procedures) destinados a solucionar uma série de tarefas bastante corriqueiras com o propósito da "reutilização de código".

Obrigado e um abraço.

Prof. Omero Francisco Bertol (http://www.pb.utfpr.edu.br/omero/)
Download da Aplicação (http://www.pb.utfpr.edu.br/omero/Delphi/Artigos/DataExtensoDelphi.rar)
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados