kapiaba Posted April 26, 2013 Report Share Posted April 26, 2013 Olá, sei que vc já resolveu, mas só para ilustrar mais uma opção, eu utilizo assim: Function HrDtInternet() Local oHttp, ; cResp1 := "", ; cResp := "", ; cHora := "", ; cData := "" IF !IsInternet() MsgWait( "Não foi possÃvel conectar a Internet para"+CRLF+; "buscar a Data e Hora de Brasilia"+CRLF+; "A Data e a Hora serão setados conforme"+CRLF+; "o que tiver configurado no micro","Internet", 2) Return( {DtoC(Date()), Time()} ) ENDIF Try oHttp := CreateObject("winhttp.winhttprequest.5.1") oHttp:Open("GET","http://www.horacerta.com.br/index.php?city=sao_paulo",.f.) oHttp:Send() cResp1 := oHttp:ResponseText() Catch Return( {DtoC(Date()), Time()} ) End Try * * MemoWrit( "HoraNet.txt", cResp1 ) * *<input name="mostrador" type="text" size="25" value="19/09/2011 - 01:02:00 PM" /> * cResp := SubStr( cResp1 , At( '<input name="mostrador"', cResp1 ) ) cResp := Substr( cResp , 1, At( '/>', cResp )-2 ) cDados := SubStr( cResp , At( 'value="', cResp )+7 ) * cData := SubStr( cDados, 1, 10) cHora := SubStr( cDados, 14 ) * If "PM" $ cHora cHora := Str(Val(SubStr(cHora,1,2))+12,2)+SubStr(cHora,3,7) End * Return( {cData, cHora} ) Theotokos, como q eu faço usando esta sua função, para checar se a Hora da Internet está DIFERENTE da Hora do computador? IF Time() # cHora ? [mensagem de hora errada] ENDIF Obg, abs. Quote Link to comment Share on other sites More sharing options...
Theotokos Posted April 29, 2013 Report Share Posted April 29, 2013 Theotokos, como q eu faço usando esta sua função, para checar se a Hora da Internet está DIFERENTE da Hora do computador? IF Time() # cHora ? [mensagem de hora errada] ENDIF Obg, abs. ... .... aHrDt := HrDtInternet() If aHrDt[1] <> Date() MsgInfo("Data do Computador Diferente") EndIf If aHrDt[2] <> Transform(Time,"99:99") MsgInfo("Hora do Computador Diferente") EndIf kapiaba 1 Quote Link to comment Share on other sites More sharing options...
Valdir Posted April 29, 2013 Report Share Posted April 29, 2013 Olá Pessoal... è possÃvel atualizar automáticamente a Data e Hora da CPU com os Retornos desses exemplos ? Obrigado Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 29, 2013 Report Share Posted April 29, 2013 PERFEITO CARISSIMO, Very thanks!! // VERIFICA A DATA E HORA DE BRASILIA E CHECA SE ESTA IGUAL AO DO COMPUTADOR // CONTRIBUICAO: FORUM FIVEWIN - SHOW() - Theotokos. aHrDt := HrDtInternet() // aHrDt[1] // A data de Brasilia IF CTOD( aHrDt[1]) <> Date() MsgInfo( OemToAnsi( "ATEN€ÇO USUµRIO: " ) +CRLF+; OemToAnsi( "A DATA DO SEU MICRO ESTµ DIFERENTE DA DATA DE " + ; "BRASILIA." ) +CRLF+; OemToAnsi( "A DATA DO SEU MICRO : " + DTOC( Date() ) ) +CRLF+; OemToAnsi( "A DATA DE BRASILIA : " + aHrDt[1] ) +CRLF+; OemToAnsi( "SINCRONIZE O RELà GIO DO WINDOWS..." ) +CRLF+; OemToAnsi( "PARA FICAR COM DATA E HORA DE BRASILIA. " ) +CRLF+; OemToAnsi( "TECLE <ENTER> PARA CONTINUAR... " ) , ; OemToAnsi( "SINCRONIZE O RELà GIO DO WINDOWS... " ) ) ENDIF // aHrDt[2] // A hora de Brasilia IF aHrDt[2] <> Transform(Time(),"99:99") MsgInfo( OemToAnsi( "ATEN€ÇO USUµRIO: " )+CRLF+; OemToAnsi( "A HORA DO SEU MICRO ESTµ DIFERENTE DA HORA DE " + ; "BRASILIA." ) +CRLF+; OemToAnsi( "A HORA DO SEU MICRO : " + TIME() ) +CRLF+; OemToAnsi( "A HORA DE BRASLIA : " + aHrDt[2] ) +CRLF+; OemToAnsi( "SINCRONIZE O RELà GIO DO WINDOWS..." ) +CRLF+; OemToAnsi( "PARA FICAR COM HORA E DATA DE BRASILIA. " ) +CRLF+; OemToAnsi( "TECLE <ENTER> PARA CONTINUAR... " ) , ; OemToAnsi( "SINCRONIZE O RELà GIO DO WINDOWS... " ) ) ENDIF Theotokos 1 Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 29, 2013 Report Share Posted April 29, 2013 Theotokos, aqui tem alguma coisa errada, pois se for 12:00 pm, ele está retornando 24:00 hs??? If "PM" $ cHora cHora := Str(Val(SubStr(cHora,1,2))+12,2)+SubStr(cHora,3,7) Endif abs, Quote Link to comment Share on other sites More sharing options...
Valdir Posted April 29, 2013 Report Share Posted April 29, 2013 Olá pessoal... Com a inestimável ajuda do Gilmer para completar o exemplo do Theotokos, consegui que o meu Sistema faça a atualização da Data e Hora do Computador automaticamente e de forma que o Usuário não precise digitar nada. Segue o que foi acrescentado : wDIA:=VAL(SUBSTR(cData,1,2)) wMES:=VAL(SUBSTR(cData,4,2)) wANO:=VAL(SUBSTR(cData,7,4)) wHOR:=VAL(SUBSTR(cHora,1,2)) wMIN:=VAL(SUBSTR(cHora,4,2)) wSEG:=VAL(SUBSTR(cHora,7,2)) SETNEWTIME(wHOR,wMIN,wSEG) SETNEWDATE(wANO,wMES,wDIA) Um abraço Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 29, 2013 Report Share Posted April 29, 2013 Valdir, em qual versão do rWindows vc. testou esta função? abs, Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 30, 2013 Report Share Posted April 30, 2013 Olá pessoal... Com a inestimável ajuda do Gilmer para completar o exemplo do Theotokos, consegui que o meu Sistema faça a atualização da Data e Hora do Computador automaticamente e de forma que o Usuário não precise digitar nada. Segue o que foi acrescentado : wDIA:=VAL(SUBSTR(cData,1,2)) wMES:=VAL(SUBSTR(cData,4,2)) wANO:=VAL(SUBSTR(cData,7,4)) wHOR:=VAL(SUBSTR(cHora,1,2)) wMIN:=VAL(SUBSTR(cHora,4,2)) wSEG:=VAL(SUBSTR(cHora,7,2)) SETNEWTIME(wHOR,wMIN,wSEG) SETNEWDATE(wANO,wMES,wDIA) Um abraço Desconfiei desde o principio, NÃO FUNCIONA em rWINDOWS 7, uma pena. abs, Quote Link to comment Share on other sites More sharing options...
Valdir Posted April 30, 2013 Report Share Posted April 30, 2013 João... Você que se expressa fluentemente em espanhol, poderia fazer o favor de perguntar ao Linares qual a nova chamada da API do Win7 e Win8 para substituir esses comandos. grato. abração. Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 30, 2013 Report Share Posted April 30, 2013 João... Você que se expressa fluentemente em espanhol, poderia fazer o favor de perguntar ao Linares qual a nova chamada da API do Win7 e Win8 para substituir esses comandos. grato. abração. Mi caro amigo, ya hice la pregunta para el maestro Antonio Liñares en el foro internacional. Estoy en el aguardo de una respuesta. Mira el link en que jo pregunto cual és el comando para rWindows 7. http://forums.fivetechsupport.com/viewtopic.php?f=6&t=26199 Gracias, regards, saludos. Um forte abraço CORINTHIANO!!! KKKKKKKKKKKKKKKKKKK, VAI CORINTHIANS!!! Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 30, 2013 Report Share Posted April 30, 2013 Veja abaixo as inumeras funções que podem lhe auxiliar em formatações de HORA e DATA: Nenhum funcionou em rWindows 7, não gera erro, mas ele não reconhece o comando nem a PAU Juvenal. AddMonth() adiciona ou retira um número de meses para / de um valor de data. BoM() retorna a data do primeiro dia de um mês. BoQ() retorna a data do primeiro dia de um trimestre. BoY() retorna a data do primeiro dia de um ano. CDoW() retorna o nome de um dia da semana a partir de uma data. CMonth() retorna o nome de um mês a partir de uma data. CtoD() converte uma seqüência de caracteres em uma data valor CtoDoW() retorna o número de um dia da semana do seu nome. CtoMonth() retorna o número de um mês de seu nome. CtoT() converte uma seqüência de caracteres em um DateTime valor Data() retorna a data atual do sistema operacional. DateTime() retorna a data e hora atuais do sistema operacional. Day() extrai o dia Numérico Número de um valor de data. Days() calcula o número de dias de segundos decorridos. DaysInMonth() retorna o número de dias em um mês. DaysToMonth() retorna o número de dias para o inÃcio de um mês de janeiro primeiro. DMY() Uma data como "dd. mês yyyy" formatos DoW() determina o dia da semana a partir de uma data numérico. DoY() retorna o número de um valor de data dia em um ano. DtoC() converte um valor de data em uma seqüência de caracteres no formato Data Set. DtoS() converte um valor de data em uma seqüência de caracteres no formato AAAAMMDD. ElapTime() calcula que o tempo decorrido entre um inÃcio e uma hora de término. EoM() retorna a data do último dia de um mês. EoQ() retorna a data do último dia de um trimestre. EoY() retorna a data de último dia de um ano. HOUR() extrai a hora de um IsLeap() valor dateTime verifica se um valor de data pertencer a um ano bissexto. LastDayoM() retorna o número de dias em um mês. MAX() retorna o maior valor de duas Numerics ou datas. MDY() formatos uma data como "Mês dd, aa". MilliSec() define um tempo de espera em milissegundos. MIN() retorna o valor de duas datas ou Numerics smallerr. MINUTE() extrai o minuto de uma Month() valor dateTime extrai o mês Numérico Número de um valor de data. NtoCDoW() converte um dia da semana numérico ao nome. NtoCMonth() converte um mês numérico ao nome. Quarter() retorna o trimestre que pertence a uma data. Seconds() retorna que o número de segundos transcorrido desde a meia-noite SecondsCpu() retorna o tempo de CPU usado pelo processo atual. Secs() calcula o número de segundos de uma seqüência tempo. SecToTime() Converts numéricos segundos em uma hora formatado a seqüência de caracteres. SetDate() altera a data do sistema de um valor de data. SetNewDate() altera a data do sistema a partir dos valores numéricos. SetNewTime() altera a hora do sistema a partir dos valores numéricos. SetTime() altera a hora do sistema de uma seqüência de tempo. ShowTime() exibe a hora do sistema continuamente em uma posição de tela especificado. Converts StoD() um "AAAAMMDD" formatado seqüência para uma data valor StoT() converte um "YYYYMMDDhhmmss.ccc" formatado seqüência a um SX_DtoP() valor dateTime converte um valor de data em uma seqüência caracteres 3 bytes. SX_PtoD() Unpacks um valor de data 3 bytes compactados. TIME() recupera a hora do sistema como uma seqüência de caracteres formatada. TimeToSec() calcula o número de segundos desde a meia-noite. TimeValid() verifica se uma seqüência de caracteres é uma seqüência de tempo válido. TString() Converts numéricos segundos em uma hora formatado a seqüência de caracteres. TtoC() converte um valor datetime em uma seqüência de caracteres no formato Data Set e Set time. TtoS() converte um valor de data em uma seqüência de caracteres no formato YYYYMMDDhhmmss.ccc. WaitPeriod() define um perÃodo de espera e permite loops tempo controlado. Calculates Week() a semana numéricos a partir de uma data. WoM() calcula o número da semana em um mês. YEAR() extrai o ano numérico de um valor de data Quote Link to comment Share on other sites More sharing options...
kapiaba Posted April 30, 2013 Report Share Posted April 30, 2013 Por enquanto a solução foi esta, mostrar a hora de Brasilia na tela, não é a melhor solução, mas pelo menos o uçuário olha. // Funcao Para Mostrar a Hora de Brasilia em Tempo Real na Tela. #Include "FiveWin.ch" STATIC oDlg, oTimer, oWnd FUNCTION BRASILIA() LOCAL oIco, aGet := ARRAY(5), cHoraBra := " " DEFINE DIALOG oDlg TITLE "Hora de Brasilia" COLOR "W+/B" @ 0.50, 09 SAY "Hora de Brasilia" SIZE 050, 10 OF oDlg ; COLORS CLR_BLACK, CLR_WHITE CENTER @ 2, 08 GET aGet[1] VAR cHoraBra PICTURE "99:99:99" OF oDlg CENTER aGet[1]:lBtnTransparent := .t. // transparent button get aGet[1] aGet[1]:Disable() // When( .F. ) aGet[1]:lBtnTransparent := .t. // transparent button get aGet[1] aGet[1]:lAdjustBtn := .t. // Button Get Adjust Witdh aGet[1] aGet[1]:lDisColors := .f. // Deactive disable color aGet[1]:nClrTextDis := CLR_WHITE // Color text disable status aGet[1]:nClrPaneDis := CLR_BLACK // Color Pane disable status aGet[1]:lAdjustBtn := .t. @ 3, 10 BUTTON "&Saida" SIZE 40, 12 DEFAULT ; ACTION( oTimer:DeActivate(), oDlg:End() ) CANCEL UPDATE ACTIVATE DIALOG oDlg CENTERED ; ON INIT( ACIONA_TIMER( aGet, oWnd ) ) RETURN NIL //-> ACIONA O TIMER DO RELOGIO DE BRASILIAR NO DIALOGO STATIC FUNCTION ACIONA_TIMER( aGet, oWnd ) DEFINE TIMER oTimer INTERVAL 0 OF oDlg ; ACTION HORABRASILIA( aGet, oWnd ) ACTIVATE TIMER oTimer RETURN NIL //-> HORA EXATA DE BRASILIA FUNCTION HORABRASILIA( aGet, oWnd ) LOCAL oHttp, cHtml LOCAL cHora IF IsInternet() // Se tiver internet ativa oHttp := CreateObject( "winhttp.winhttprequest.5.1" ) oHttp:Open( "GET", "http://24timezones.com/pt_horamundial/brasilia_hora_local.php" , .F. ) oHttp:Send() cHtml:= oHttp:ResponseText() cHtml:= left(alltrim(StrExtract(cHtml, '<span id="currentTime">', '</span>' )),8) cHora := TRANSF( cHtml, "99:99:99" ) aGet[1]:VARPUT( cHora ) aGet[1]:Refresh() ELSE cHora := [SEM NET] aGet[1]:VARPUT( cHora ) aGet[1]:Refresh() ENDIF RETURN NIL STATIC 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) //-> Funcao para checar a Internet FUNCTION IsInternet() LOCAL cIp, cVret := .F. WsaStartUp() // conforme pessoal do forum, e para chamar duas vezes cIp := GETHOSTBYNAME( "microsoft.com" ) cIp := GETHOSTBYNAME( "microsoft.com" ) WsaCleanUp() // Seguranca caso o provedor da microsoft esteja fora do ar... IF ( cIp <= "0.0.0.0" ) WsaStartUp() cIp := GetHostByName( "google.com" ) cIp := GetHostByName( "google.com" ) WsaCleanUp() ENDIF RETURN( cIp<>"0.0.0.0" ) // FIM DO PROGRAMA Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.