Relogio Atomico
// 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%]'")
EDT_DATA_HORA_TIME_ZONE = dtDateTime
EDT_DATA = datacerta
EDT_HORA = Horacerta
ELSE
Info("Data e Hora esta sincronizada")
END
ELSE
Error("Falha ao obter a data e hora atual.")
END
RESULT dtDateTime