Olá pessoal nesta Quick irei continuar mostrando funções de data no Delphi
Obtendo a quantidade de dias para um determinado ano
Quando estamos trabalhando com datas, geralmente precisamos saber a quantidade de dias
que um determinado ano possui, ou seja, alguns anos possuem 365 dias, outros possuem 366.
A unit DateUtils possui uma função chamada DaysInAYear() que serve para este propósito. Ela
aceita um inteiro representando o ano desejado e retorna um inteiro representando a
quantidade de dias que tal ano possui. Veja o exemplo:
procedure TForm1.Button1Click(Sender: TObject);
var
ano, dias_ano: Integer;
begin
ano := 2010;
// vamos obter a quantidade de dias para o
// ano de 2010
dias_ano := DaysInAYear(ano);
// exibe o resultado
ShowMessage('O ano informado contém ' + IntToStr(dias_ano) +
' dias');
end;
Este trecho de código nos informará que o ano de 2010 possui 365 dias. Note que o
argumento para a função DaysInAYear() deve estar entre 1 e 9999 (inclusive).
INSERINDO UMA BARRA DE STATUS
Vamos criar uma barra de status num formulário para mostrar a data por extenso.
. Insira um Componente StatusBar, da paleta WIN32 e mude a propriedade
Name para stbDatahora;
. No Object Inspector selecione a propriedade Panels e dê um clique
no símbolo [...];
.Clique no botão add New para adicionar um painel no Componente
StatusBar;
. Insira mais dois Painéis no componente Status Bar como
demonstra figura 07:
. Mude as seguintes propriedades dos Componentes TstatusPanel:
Alignment taCenter
Width 120
MONSTRANDO A DATA NA BARRA DE STATUS
Iremos Criar agora uma função para mostrar a Data na Barra
de Status. Para isso, selecione o formulário e tecle F12. receberá o código do formuláriol, no
editor de código, localize a Palavra Public:
private
{ Private declarations }
public
{ Public declarations }
end;
. Depois da Linha “{Public declarations}” digite o seguinte código:
Public
{ Public declarations }
Function DataStatus: String;
. Localize a palavra Implementation e digite após ele o seguinte código
para a função DataStatus ou tecle Ctrl + Shift + C:
implementation
{$R *.dfm}
Function Tform.DataStatus:String;
Const
Meses :Array[1..12] of String =
(‘janeiro’,’Fevereiro’,’Março’,’Abril’,’Maio’,
‘Junho’,’Julho’,’Agosto’,’Setembro’,’Outubro’,
‘Novembro’,’Dezembro’);
Semana:Array[1..7] of string =
(‘Domingo’,’Segunda-Feira’,’Terça-Feira’,
‘Quarta-Feira’,’Quinta-Feira’,’Sexta-Feira’,
‘Sabado’);
var
Dia, Mes, Ano, DiaSem:Word;
begin
DecodeDate(Date,Ano, Mes,Dia);
DiaSem:=DayofWeek(Date);
Result:=Semana[DiaSem]+ ‘,’+InttoStr(dia) +
‘ de ‘+ Meses[Mes] + ‘ de ‘ + IntToStr(Ano);
end;
O Vetor Meses representa o nome de todos os meses do ano, e o Vetor Semana o nome de todos os dias da semana. Através da função DecodeDate, o Delphi permite que o programa armazene nas variáveis Dia, Mês e Ano os valores da data atual do sistema. A função DayOfWeek retorna um número inteiro que indica o dia da semana, sendo que o valor pode variar de 1 a 7, onde o valor 1 corresponde ao “Domingo”. Para escrever o dia da semana por extenso, a função posiciona o vetor Semana no valor indicado pela variável DiaSem.
. Tecle F12 e Coloque um componente Timer, da paleta System
no formulário. Dê um Duplo Clique no componente Timer e
digite o código:
procedure Tform.Timer1Timer(Sender: TObject);
begin
stbDataHora.Panels[0].text:=DateToStr(Date); //Transformando a
data em String
stbDataHora.Panels[1].text:=TimeToStr(time);//Transformando a
hora em String
stbDataHora.Panels[2].text:=DataStatus;
end;
Vou ficando por aqui, na próxima continuaremos trabalhando com Data no Delphi
Um abraço
Rubens Antunes