FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Fecha y Hora de Internet
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Fecha y Hora de Internet
Posted: Thu Jan 26, 2017 12:54 PM

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

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Fecha y Hora de Internet
Posted: Thu Jan 26, 2017 07:05 PM

Alguien que me pueda tirar una idea?
Mil gracias...
Roberto

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 990
Joined: Wed Oct 19, 2005 02:17 PM
Re: Fecha y Hora de Internet
Posted: Thu Jan 26, 2017 08:25 PM
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Fecha y Hora de Internet
Posted: Fri Jan 27, 2017 11:26 AM

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

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 990
Joined: Wed Oct 19, 2005 02:17 PM
Re: Fecha y Hora de Internet
Posted: Fri Jan 27, 2017 11:34 AM

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

Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Fecha y Hora de Internet
Posted: Fri Jan 27, 2017 12:11 PM

No sé como extraer la fecha en formato DD/MM/AA de esa cadena...
Es eso...
Gracias!
Roberto

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Fecha y Hora de Internet
Posted: Fri Jan 27, 2017 04:45 PM
+ ó - asi:

Code (fw): Select all Collapse
// 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


João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Fecha y Hora de Internet
Posted: Fri Jan 27, 2017 07:43 PM

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

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Fecha y Hora de Internet
Posted: Mon Jan 30, 2017 06:27 PM
Mira se tiene algo asi en tu Pais como aca en Brazil:

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


Code (fw): Select all Collapse
   aHrDt := HrDtInternet()

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


Code (fw): Select all Collapse
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.



João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Fecha y Hora de Internet
Posted: Tue Jan 31, 2017 01:44 PM

Gracias Master Joao!
Lo voy a probar!!!!
Roberto

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Fecha y Hora de Internet - SOLUCIONADO
Posted: Wed Feb 01, 2017 01:04 PM

Joao
Eso es lo que necesitaba!
Gracias!
Roberto

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Fecha y Hora de Internet - SOLUCIONADO
Posted: Wed Feb 01, 2017 01:15 PM
TOTOVIOTTI wrote:Joao
Eso es lo que necesitaba!
Gracias!
Roberto


:-) :-) :-) :-) :-) :-)

Saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 8523
Joined: Tue Dec 20, 2005 07:36 PM
Re: Fecha y Hora de Internet
Posted: Wed Feb 01, 2017 01:19 PM

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.

João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
Posts: 470
Joined: Fri Feb 05, 2010 11:30 AM
Re: Fecha y Hora de Internet
Posted: Fri Feb 03, 2017 01:30 PM

Si si... le cambié por Buenos Aires y funciona perfecto!
Muito obrigado!!

:wink:

Univ@c I.S.I.
Desarrolladores de Software
http://www.elcolegioencasa.ar

Continue the discussion