// Summary: <specify the procedure action>
// Syntax:
//GetRelogioAtomico ()
//
// Parameters:
// None
// Example:
// <Specify a usage example>
//
// Return value:
PROCEDURE GetRelogioAtomico()
// Define a URL da API para o fuso horário de Brasília
sUrl is string = "http://worldtimeapi.org/api/timezone/America/Sao_Paulo"
//exemplo
//{
// "abbreviation": "-03",
// "client_ip": "138.204.25.129",
// "datetime": "2024-07-25T21:39:02.036358-03:00",
// "day_of_week": 4,
// "day_of_year": 207,
// "dst": false,
// "dst_from": null,
// "dst_offset": 0,
// "dst_until": null,
// "raw_offset": -10800,
// "timezone": "America/Sao_Paulo",
// "unixtime": 1721954342,
// "utc_datetime": "2024-07-26T00:39:02.036358+00:00",
// "utc_offset": "-03:00",
// "week_number": 30
//}
dtDateTime is DateTime //atomica
dtDataHora is DateTime //relogio do computador
IF HTTPRequest(sUrl) = True THEN
vRESULTADO is string = HTTPGetResult()
// Analisa a resposta JSON
JSONResponse is JSON
JSONResponse = vRESULTADO
// Extrai a data e hora
// "2024-07-25T21:39:02.036358-03:00"
Hora is string = Middle(JSONResponse.datetime,12,9)
Hora = Replace(Hora,":","")
Hora = Replace(Hora,"-","")
dtDateTime = Middle(JSONResponse.datetime,1,4)+Middle(JSONResponse.datetime,6,2)+Middle(JSONResponse.datetime,9,2)+Hora
dtDataHora = DateSys()+TimeSys()
IF Middle(dtDateTime,1,12) <> Middle(dtDataHora,1,12) THEN
datacerta is string = DateToString(dtDateTime,"DD/MM/YYYY")
Horacerta is string = TimeToString(dtDateTime,"HH:MM:SS")
AMPM is string
IF Val(Middle(Horacerta,1,2)) <= 12 THEN
AMPM = "AM"
ELSE
AMPM = "PM"
END
Info("Data do computador esta errada!")
Info(dtDateTime,dtDataHora)
Info("PowerShell: Set-Date '[%datacerta%] [%Horacerta%] [%AMPM%]'")
ELSE
Info("Data e Hora esta sincronizada")
END
ELSE
Error("Falha ao obter a data e hora atual.")
END
RESULT dtDateTime
//Aqui está uma explicação passo a passo do código:
//
//Definir a URL da API: A URL http://worldtimeapi.org/api/timezone/America/Sao_Paulo é usada para obter a hora atual de Brasília.
//
//Solicitação HTTP GET: A função HTTPRequest envia uma solicitação GET para a URL especificada.
//
//Verificação de Erro: O bloco IF ErrorOccurred = False verifica se a solicitação HTTP foi bem-sucedida.
//
//Análise da Resposta JSON: A resposta JSON da API é convertida para uma estrutura JSON usando JSONToVariant.
//
//Extração da Data e Hora: A data e hora são extraídas da resposta JSON.
//
//Conversão para DateTime: A string de data e hora é convertida para um tipo DateTime.
//
//Exibição da Data e Hora: A data e hora são exibidas usando a função Info.
//
//Certifique-se de incluir as bibliotecas necessárias para manipulação de JSON e HTTP em seu projeto Windev.
//
//Se precisar de mais alguma ajuda ou explicação, sinta-se à vontade para perguntar!
--
Adriano José Boller
______________________________________________
Consultor e Representante Oficial da
PcSoft no Brasil
+55 (41) 99949 1800
adrianoboller@gmail.com
skype: adrianoboller
http://wxinformatica.com.br/Message modifié, 26 juillet 2024 - 03:14