Page 1 of 1

Fecha y Hora de Internet

PostPosted: Thu Jan 26, 2017 12:54 pm
by TOTOVIOTTI
Amigos,
quizá es algo tonto pero no puedo encontrar la respuesta.
Como hago para obtener la fecha y la hora de Internet?
Muchas gracias...
Roberto

Re: Fecha y Hora de Internet

PostPosted: Thu Jan 26, 2017 7:05 pm
by TOTOVIOTTI
Alguien que me pueda tirar una idea?
Mil gracias...
Roberto

Re: Fecha y Hora de Internet

PostPosted: Thu Jan 26, 2017 8:25 pm
by Baxajaun

Re: Fecha y Hora de Internet

PostPosted: Fri Jan 27, 2017 11:26 am
by TOTOVIOTTI
Gracias amigo.... no habrá nada 100% fivewin para resolver esto?
Me indicaron el itime.prg del samples. Está bueno, pero no puedo obtener
bien la fecha, si la hora...
Alguna ideíta más?
Gracias...

Re: Fecha y Hora de Internet

PostPosted: Fri Jan 27, 2017 11:34 am
by Baxajaun
Roberto,

acabo de probar el ejemplo itime.prg y funciona perfectamente, da la fecha y la hora desde un servidor NTP.

Dónde encuentras el problema ?

Saludos

Re: Fecha y Hora de Internet

PostPosted: Fri Jan 27, 2017 12:11 pm
by TOTOVIOTTI
No sé como extraer la fecha en formato DD/MM/AA de esa cadena...
Es eso...
Gracias!
Roberto

Re: Fecha y Hora de Internet

PostPosted: Fri Jan 27, 2017 4:45 pm
by karinha
+ ó - asi:

Code: Select all  Expand view

// Internet time

#include "FiveWin.ch"

function Main()

   LOCAL cGetHora, cFecha, cHora, hFecha, wDia, wMes, wAno, wFecha

   // MsgInfo( GetNtpDate( "204.123.2.72" ) )

   cGetHora := GetNtpDate( "204.123.2.72" )

   cHora  := SUBST( cGetHora, 11, 9 )

   ? "hora.: ", cHora

   WDIA   := SUBST( cGetHora,  1,  3 )

   ? CDOW( DATE() )

   WMES   := SUBST( cGetHora,  4,  4 )

   ? CMONTH( DATE() )

   WANO   := SUBST( cGetHora,  20,  5 )

   ? YEAR( DATE() )

   WFECHA := WDIA +"/"+ WMES  +"/"+ WANO

   ? WFECHA

return nil

#pragma BEGINDUMP

#include <hbapi.h>
#include <winsock.h>
#include <time.h>

#define MAXLEN 1024

HB_FUNC( GETNTPDATE )
{
   char * hostname = ( char * ) hb_parc( 1 );
   unsigned char msg[ 48 ] = { 010, 0, 0, 0, 0, 0, 0, 0, 0 };   // the packet we send
   unsigned long buf[ MAXLEN ]// the buffer we get back
   struct sockaddr_in server_addr;
   int  s;  // socket
   WSADATA wsa;
   struct timeval timeout;
   fd_set fds;
   time_t tmit;
         
   WSAStartup( 0x101, &wsa );    

   s = socket( PF_INET, SOCK_DGRAM, getprotobyname( "udp" )->p_proto );

   memset( &server_addr, 0, sizeof( server_addr ) );
   server_addr.sin_family = AF_INET;
   server_addr.sin_addr.s_addr = inet_addr( hostname );
   server_addr.sin_port = htons( 123 ); // ntp port
   
   sendto( s, msg, sizeof( msg ), 0, ( struct sockaddr * ) &server_addr, sizeof( server_addr ) );
   
   FD_ZERO( &fds );
   FD_SET( s, &fds );
   timeout.tv_sec = 10;
   timeout.tv_usec = 0;
     
   if( select( 0, &fds, NULL, NULL, &timeout ) )
   {      
      recv( s, ( void * ) buf, sizeof( buf ), 0 );

      tmit = ntohl( buf[ 10 ] );
      tmit-= 2208988800U;
   }  
   else
      MessageBox( 0, "can't read", "ok", 0 );      
   
   WSACleanup();

   hb_retc( ctime( &tmit ) );  
}

#pragma ENDDUMP
 



Re: Fecha y Hora de Internet

PostPosted: Fri Jan 27, 2017 7:43 pm
by TOTOVIOTTI
Joao:
me tira la fecha Fri/Jan/2017
Si fuera un formato estándar, podría hacer equivalencia... pero no sé como devuelve los otros días y meses...
Gracias...
Roberto

Re: Fecha y Hora de Internet

PostPosted: Mon Jan 30, 2017 6:27 pm
by karinha
Mira se tiene algo asi en tu Pais como aca en Brazil:

Code: Select all  Expand view

      oHttp:Open("GET","http://www.horacerta.com.br/index.php?city=sao_paulo",.f.)
 


Code: Select all  Expand view

   aHrDt := HrDtInternet()

   IF .NOT. ISINTERNET()
      dDataBra := "SEM NET"
   ELSE
      dDataBra := CTOD( aHrDt[1] )
   ENDIF
 


Code: Select all  Expand view

Function HrDtInternet()

   Local oHttp, ;
         cResp1       := "", ;
         cResp        := "", ;
         cHora      := "", ;
         cData      := ""
   local _oTmr

   DEFINE TIMER _oTmr ;
      INTERVAL 1000 ;
      ACTION SysRefresh()
   ACTIVATE TIMER _oTmr

   IF !IsInternet()
      _oTmr:End()
      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
      _oTmr:End()
      Return( {DtoC(Date()), Time()} )
   End Try

   *<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
   */


   If "PM" $ cHora .AND. SubStr(cHora,1,2) != "12"
      cHora := Str(Val(SubStr(cHora,1,2))+12,2)+SubStr(cHora,3,7)
   Endif

   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 ) )

   _oTmr:End()

   * MsgInfo("Data: "+cData+CRLF+"Hora: "+cHora,"Na internet")

Return( {cData, cHora} )
 


Saludos.




Re: Fecha y Hora de Internet

PostPosted: Tue Jan 31, 2017 1:44 pm
by TOTOVIOTTI
Gracias Master Joao!
Lo voy a probar!!!!
Roberto

Re: Fecha y Hora de Internet - SOLUCIONADO

PostPosted: Wed Feb 01, 2017 1:04 pm
by TOTOVIOTTI
Joao
Eso es lo que necesitaba!
Gracias!
Roberto

Re: Fecha y Hora de Internet - SOLUCIONADO

PostPosted: Wed Feb 01, 2017 1:15 pm
by karinha
TOTOVIOTTI wrote:Joao
Eso es lo que necesitaba!
Gracias!
Roberto


:D :D :D :) :) :)

Saludos.

Re: Fecha y Hora de Internet

PostPosted: Wed Feb 01, 2017 1:19 pm
by karinha
Una buena cosa és que el horário de Argentina(Buenos Aires), és igual al de Brasil(Brasilia). las veces, uso el horário de Buenos Aires para sincronizar el horário de la computadora del cliente cuando falla el de Brasilia. Saludos.

Re: Fecha y Hora de Internet

PostPosted: Fri Feb 03, 2017 1:30 pm
by TOTOVIOTTI
Si si... le cambié por Buenos Aires y funciona perfecto!
Muito obrigado!!
:wink: