Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

funcion gmtime no funciona bien, help

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Consultas
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: funcion gmtime no funciona bien, help Responder citando

Código:

  double sec;
  int horas,diagmt,dianormal;
  time_t t;
  struct tm *gmt,*normal;
  int hnormal,hgmt;
  t = time(NULL);
  gmt = gmtime(&t);
  hgmt=gmt->tm_hour;
  diagmt=gmt->tm_mday;

  normal=localtime(&t);
  hnormal=normal->tm_hour;
  dianormal=normal->tm_mday;
  if(diagmt==dianormal)
  {
    horas=hnormal-hgmt;
  }
  else
  {
    if(hnormal==0||hnormal==1)
    {
      if(hnormal==0)
      {
        if(hgmt==22) horas=2;
        if(hgmt==23) horas=1;
      }
      if(hnormal==1)
      {
        if(hgmt==23) horas=2;
        if(hgmt==0) horas=1;
      }
    }
    else
    {
      horas=hnormal-hgmt;
    }
  }
  Edit1->Text=horas;


Este código escribe en el cuadro de tecto la diferencia de horas entre la hora local y la hora gmt.

Si el windows esta configurado con el cambio de hora automático, en el horario de invierno me sale una diferencia de 2 horas entre local y gmt, cuando yo estando en gmt +1 deberia salirme una hora.

¿Alguien puede decirme como obtener la hora gmt de otra forma? Gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

Puedes mandarme a la porra Smile: LMDTools tiene un elemento (LMDSysInfo) que, entre otras propiedades, da la diferencia con la hora GMT; se trata de LocaleTime.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: gracias Responder citando

Gracias, lo probaré, de momento lo solucione con una consulta al servidor sql server de microsoft

select getutc()

que devuelve la hora gmt 0.

Saludos.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Re: gracias Responder citando

ZHAX1 escribió:
Gracias, lo probaré, de momento lo solucione con una consulta al servidor sql server de microsoft

Pero ¿no te obliga eso a estar conectado a la red cunado haces la consulta?
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Realizando esta rutina, sacada de la ayuda de Builder y sin mas modificaciones que para ejecutarla en BCB me imprime correctamente la hora y la información GMT sin ningun problema.

Código:
//---------------------------------------------------------------------------
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>

#pragma hdrstop
//---------------------------------------------------------------------------

#pragma argsused
char *tzstr = "TZ=PST8PDT"; // verifica usando esto
int main(int argc, char* argv[])
{
   time_t t;
   struct tm *gmt, *area;
   putenv(tzstr); // establecemos la cadena de ambiente, para la fecha
   tzset();
   t = time(NULL);
   area = localtime(&t);
   int iLocalHora = area->tm_hour;
   int iLocalMinu = area->tm_min;
   printf("Tiempo Local: %s", asctime(area));
   gmt = gmtime(&t);

   int iGMTHora = gmt->tm_hour;
   int iGMTMinu = gmt->tm_min;

   printf("  Tiempo GMT: %s", asctime(gmt));
   printf("\nDiferencia en horas %d:%d", iGMTHora - iLocalHora, iGMTMinu - iLocalMinu);
   getch();
   return 0;
}
//---------------------------------------------------------------------------

_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

¿la cadena ambiente para España cual seria?

Respondiendo a Angel, si, me obliga a estar conectado a un servidor sqlserver, que en este caso me es válido para mi programa.

Gracias.
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mensaje    Asunto: Responder citando

ZHAX1 escribió:
¿la cadena ambiente para España cual seria?

¿A qué te refieres con esto?

ZHAX1 escribió:
Respondiendo a Angel, si, me obliga a estar conectado a un servidor sqlserver, que en este caso me es válido para mi programa.

Gracias por la aclaración.
_________________
Un saludo

Necesitamos tu ayuda: Envía AI al 27595 (Coste 1,20 euros + IVA)
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

Al Final de este enlace, puedes determinar el tipo de cadena de ambiente

Algo mas de información
- Link 1
- Link 2
_________________
Cool
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

gracias
Volver arriba
Ver perfil de usuario Enviar mensaje privado
Mostrar mensajes de anteriores:   
Cambiar a:  
No puedes publicar temas nuevos en este foro
No puedes responder a temas en este foro
No puedes editar tus mensajes en este foro
No puedes borrar tus mensajes en este foro
No puedes votar en las encuestas de este foro


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.