Clique para saber mais...
  Home     Download     Produtos / Cursos     Revista     Vídeo Aulas     Fórum     Contato   Clique aqui para logar | 12 de Setembro de 2026
  Login

Codinome
Senha
Salvar informações

 Esqueci minha senha
 Novo Cadastro

  Usuários
136 Usuários Online

  Revista ActiveDelphi
 Assine Já!
 Edições
 Sobre a Revista

  Conteúdo
 Apostilas
 Artigos
 Componentes
 Dicas
 News
 Programas / Exemplos
 Vídeo Aulas

  Serviços
 Active News
 Fórum
 Produtos / Cursos

  Outros
 Colunistas
 Contato
 Top 10

  Publicidade

  [Dicas]  Recuperando a data e a hora da Internet
Publicado por dataprime : Sexta, Outubro 23, 2009 - 09:10 GMT-3 (1582 leituras)
Comentários 3 Comentários   Enviar esta notícia a um amigo Enviar para um amigo   Versão para Impressão Versão para impressão
Administrador Recentemente precisei de uma função que me retornasse a data e a hora oficial do Brasil, para que eu pudesse alterar o relógio do windows. Como só achei informações desencontradas, criei uma rotina e gostaria de compartilhar com vocês

Obs 1: Caso você tenha alguma solução mais elegante, comente no final deste material ou entre em contato!

Obs 2: O código está todo comentado e é de fácil compreensão.

//Testado com Delphi 7

{incluir na cláusula USES da Unit:

OleCtrls,
SHDocVw,
WIninet,
IdBaseComponent, 
IdComponent,
IdTCPConnection,
IdTCPClient,
IdHTTP,
DateUtils}


procedure AjustaDataHoraPelaInternet;
var
  Pagina, s: String;
  texto: TMemo;
  IdHTTP1: TIdHTTP;
  ano, mes, dia, hora, min, seg, mil: Word;
  DataCerta: TDateTime;
  DataHora: TSystemTime;
begin
  //pega a hora do sistema
  DecodeDateTime(Now,ano, mes, dia, hora, min, seg, mil);
  //criar em runtime o memo
  texto := TMemo.Create(Self);
  texto.Parent  := Self;
  texto.Visible := False; //pra que mostrar o memo, né?
  Repaint;
  //criar em runtime IdHTTP
  IdHTTP1 := TIdHTTP.Create(Self);
  //tenta carregar o código fonte da pagina
  try
    //usei esta página pra pegar as informações
    Pagina:= IdHTTP1.Get('http://pcdsh01.on.br/HoraLegalBrasileira.asp');
    //adicionar o código fonte no memo
    texto.Lines.Add(Pagina);
    //confere se o memo não está vazio
    if pos('http://',Texto.lines.text)> 0 then
    begin

      //copia do memo o que está entre "#ffcc66>" e 
      //"
" <-- é data e a hora no código fonte

      s :=  copy(texto.lines.text,pos('#ffcc66>', texto.lines.text), pos('',texto.lines.text)-1);
      //retira caracteres no início e no final da string que não seja data e hora
      s :=  copy(s,pos('#ffcc66>',s)+11,pos('',s)-12);
      //converte pra dentro da variável
      DataCerta:= StrToDateTime(s);
      //decodifica o timestamp
      DecodeDateTime(DataCerta,ano, mes, dia, hora, min, seg, mil);
    end
  except

    //nao conectado na internet, pega hora local mesmo
  end;

  //ajustar data e hora
  with DataHora do
  begin

    wYear := Ano;
    wMonth := Mes;
    wDay := Dia;
    wHour := Hora;
    wMinute := Min;
    wSecond := Seg;
    wMilliseconds := Mil;
  end;
  SetLocalTime(DataHora);
 
  //libera os componentes criados em runtime
  texto.Free;
  IdHTTP1.Free;
  //Obs: Alguns monitores de registro (ex.: Rising Antivirus)
  //costumam bronquear !!


  //se deseja testar no seu form, isso faz a data e a hora
  //atual aparecerem na barra automática

  caption := s;
end;

Por: dataprime
Contato: dataprime@hotmail.com



Comentários Comentários
   Ordem:  
Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos.


por: DiogoCury (diogo_booster_1@yahoo.com.br) : Out 29, 2009 - 03:35
(Informações sobre o membro | Enviar uma mensagem)
Já tinha feito uma rotina antes pra fazer issu + eu pegava do yahoo mesmo e retirava 3 horas (era 3 horas a mais o retorno da pagina)

VC pode usar um StringList ou mesmo deixar na variavel pagina o conteudo do site e trabalhar ela pra pegar a String contendo a hora

no geral ta muito baum sua rotina
  Edição 112

Revista ActiveDelphi

  50 Programas Fontes


  Produtos

Conheça Nossos Produtos

Copyright© 2001-2016 – Active Delphi – Todos os direitos reservados