Olá João, Tenta a rotina abaixo
// -------------------------------------------------------------------------- //
function atualiza_hora()
local xdia_atu , xhora_atu
try
oHttp := CreateObject( "winhttp.winhttprequest.5.1" )
oHttp:Open( "GET", "http://24timezones.com/pt_horamundial/brasilia_hora_local.php" , .F. )
oHttp:Send()
cHtml:= oHttp:ResponseText()
catch
return .t.
end
cHora := alltrim(StrExtract(cHtml, '<span id="currentTime">', '</span>' ))
cHora1 := TRANSF( cHora, "99:99:99" )
x_am_pm := alltrim( substr( cHora , 10 , 2 ) )
ntamtot := len( cHora )
nposmesi := rat( ',' , cHora ) + 1
nposmesf := (ntamtot - nposmesi) - 4
nposanoi := ntamtot - 3
nposdiaf := rat( ',' , cHora ) -1
nposdiai := nposdiaf - 1
nposdiaf := nposdiaf - nposdiai
dia := alltrim( substr( cHora , nposdiai , 2 ) )
mes := alltrim( substr( cHora , nposmesi , nposmesf ) )
ano := alltrim( substr( cHora , nposanoi , 4 ) )
if x_am_pm = 'PM' .AND. ( val(substr( cHora1 , 1 , 2 )) < 12 )
xhora1 := zeracod(str( val(substr( cHora1 , 1 , 2 )) + 12 ,2 ))
cHora1 := xhora1 + substr( cHora1 , 3 )
endif
data_atual_site:= dia+'/'+qmesnum(mes)+'/'+ano
/*
? 'cHora' , cHora ,;
'cHora1' , cHora1 ,;
'Dia' , dia ,;
'Mes' , mes ,;
'Ano' , ano ,;
'x_am_pm' , x_am_pm,;
'data_atual_site' , data_atual_site,;
'DataAtual' , date(),;
'HoraAtual' , time()
*/
xdia_atu := date()
xhora_atu := time()
if data_atual_site # dtoc( xdia_atu )
//xdate := "Date " + data_atual_site
//try
// winexec( xdate )
//catch
//end
msginfo("Favor corrigir a data do seu Equipamento." + CRLF + CRLF +;
"Data na Internet: " + data_atual_site + CRLF +;
"Data do Equipamento: " + dtoc( xdia_atu ) , "CIACPD Informa." )
endif
if substr( cHora1 , 1 , 4 ) # substr( xhora_atu , 1 , 4 )
//try
// winexec( cHora1 )
//catch
//end
msginfo("Favor corrigir a hora do seu Equipamento." + CRLF + CRLF +;
"Hora na Internet: " + cHora1 + CRLF +;
"Hora do Equipamento: " + xhora_atu , "CIACPD Informa." )
endif
RETURN NIL
// -------------------------------------------------------------------------- //
FUNCTION StrExtract(cText,cAfter,cBefore)
LOCAL cRet := SUBSTR(cText,AT(cAfter,cText) + LEN(cAfter))
LOCAL n
IF (n := AT(cBefore,cRet)) > 0
cRet := LEFT(cRet,n - 1)
ENDIF*/
RETURN (cRet)
// -------------------------------------------------------------------------- //
Function ZeraCod(Cod)
Return Padl(AllTrim(Cod),Len(cod),[0])
//----------------------------------------------------------------------------//
Function qmesnum(pmes)
Local nmesnum
if len(alltrim(pmes)) < 1
pmes:='Janeiro'
endif
Private Tmes:={"JANEIRO","FEVEREIRO","MARÇO","ABRIL","MAIO","JUNHO","JULHO","AGOSTO","SETEMBRO","OUTUBRO","NOVEMBRO","DEZEMBRO"}
nmesnum := ascan( tmes, Alltrim(upper(pmes)) )
return zeracod(str(nmesnum,2))
//----------------------------------------------------------------------------//
Daniel Segura