Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2014-12

Hora de verano en España con PascalTZ

12 messages · 4 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Juan M. Puertas

? Hola amigos.
Estoy desarrollando un programa que utiliza cambios de hora hist�ricos para todo el mundo.
Estoy muy agradecido a Jos� Mejuto por su trabajo con PascalTZ. He seguido las instrucciones para acceder a los cambios de hora y todo parec�a funcionar bien, hasta que me he encontrado con que no funciona con la hora de verano en Espa�a. El programa me devuelve -1 en lugar de -2. Esto me pasa tanto en Linux Mint como en Windows.
�Os pasa a vosotros lo mismo?.
Muchas gracias por vuestra respuesta.
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20141218/0bebbae1/attachment.html>

Reply by email

José Mejuto
to Juan M. Puertas

El 18/12/2014 a las 12:03, Juan M. Puertas escribi�:

Show quoted text 10 lines
? Hola amigos. Estoy desarrollando un programa que utiliza cambios de hora hist�ricos para todo el mundo. Estoy muy agradecido a Jos� Mejuto por su trabajo con PascalTZ. He seguido las instrucciones para acceder a los cambios de hora y todo parec�a funcionar bien, hasta que me he encontrado con que no funciona con la hora de verano en Espa�a. El programa me devuelve -1 en lugar de -2. Esto me pasa tanto en Linux Mint como en Windows. �Os pasa a vosotros lo mismo?. Muchas gracias por vuestra respuesta.

Hola,

Puedes poner la fecha de la que quieres hacer la conversi�n ?

Quiero decir, supongo que quieres hacer un cambio de hora/fecha, puedes poner el cambio a realizar ? Si puedes pegar el trozo de c�digo referente ser�a genial, o un mini programa que pueda usar de test.

Reply by email

Juan M. Puertas
to José Mejuto

Hola Jose, encantado de saludarte.
En realidad sucede con cualquier fecha en la que exista una hora de verano en Espa�a. Sea horario de invierno o de verano, siempre devuelve una hora de diferencia respecto a GMT, cuando en verano deber�a devolver dos horas. Aqu� est� el c�digo que utilizo:

function dameHuso(yy,mm,dd,ho,mi,ss:word;zona:string):single;
// Devuelve el Huso Horario en horas
var
  ptz :TPascalTZ;
  s: string;
  t,nt: TDateTime;
  ms:Word;
begin
  //Now = Tiempo transcurrido desde 1 Enero 1900
  ptz := TPascalTZ.Create();
  ptz.ParseDatabaseFromFile('tzdatabase/africa');
  ptz.ParseDatabaseFromFile('tzdatabase/antarctica');
  ptz.ParseDatabaseFromFile('tzdatabase/asia');
  ptz.ParseDatabaseFromFile('tzdatabase/australasia');
  ptz.ParseDatabaseFromFile('tzdatabase/etcetera');
  ptz.ParseDatabaseFromFile('tzdatabase/europe');
  ptz.ParseDatabaseFromFile('tzdatabase/northamerica');
  ptz.ParseDatabaseFromFile('tzdatabase/pacificnew');
  ptz.ParseDatabaseFromFile('tzdatabase/southamerica');
  ms:=0;
  t:=EncodeDate(yy,mm,dd) + EnCodeTime(ho,mi,ss,ms);
  nt:=ptz.LocalTimeToGMT(t,zona);
  ptz.free;
  dameHuso:=(nt-t)*24.0;
end;

El 18 de diciembre de 2014, 16:44, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 32 lines
El 18/12/2014 a las 12:03, Juan M. Puertas escribi�: ? Hola amigos. > Estoy desarrollando un programa que utiliza cambios de hora hist�ricos > para todo el mundo. > Estoy muy agradecido a Jos� Mejuto por su trabajo con PascalTZ. > He seguido las instrucciones para acceder a los cambios de hora y todo > parec�a funcionar bien, hasta que me he encontrado con que no funciona > con la hora de verano en Espa�a. El programa me devuelve -1 en lugar de > -2. Esto me pasa tanto en Linux Mint como en Windows. > �Os pasa a vosotros lo mismo?. > Muchas gracias por vuestra respuesta. > Hola, Puedes poner la fecha de la que quieres hacer la conversi�n ? Quiero decir, supongo que quieres hacer un cambio de hora/fecha, puedes poner el cambio a realizar ? Si puedes pegar el trozo de c�digo referente ser�a genial, o un mini programa que pueda usar de test. -- _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
*Nota: Por problemas con el e-mail. Puede que recibas de nuevo este mensaje en un tiempo.* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20141218/cc5bf0a2/attachment.html>

Reply by email

José Mejuto
to Juan M. Puertas

El 18/12/2014 a las 17:19, Juan M. Puertas escribi�:

Show quoted text 7 lines
Hola Jose, encantado de saludarte. En realidad sucede con cualquier fecha en la que exista una hora de verano en Espa�a. Sea horario de invierno o de verano, siempre devuelve una hora de diferencia respecto a GMT, cuando en verano deber�a devolver dos horas. Aqu� est� el c�digo que utilizo:

[...]

Show quoted text 9 lines
ptz.ParseDatabaseFromFile('tzdatabase/africa'); ptz.ParseDatabaseFromFile('tzdatabase/antarctica'); ptz.ParseDatabaseFromFile('tzdatabase/asia'); ptz.ParseDatabaseFromFile('tzdatabase/australasia'); ptz.ParseDatabaseFromFile('tzdatabase/etcetera'); ptz.ParseDatabaseFromFile('tzdatabase/europe'); ptz.ParseDatabaseFromFile('tzdatabase/northamerica'); ptz.ParseDatabaseFromFile('tzdatabase/pacificnew'); ptz.ParseDatabaseFromFile('tzdatabase/southamerica');

[...]

Hola,

El ParseDatabaseFromFile s�lo se puede llamar una vez, si no la liamos :)

Crea un fichero llamado, por ejemplo, global.txt con el contenido de todas las zonas que quieras usar, y carga s�lo esa.

Yo creo recordar que lo hice en DOS con:

type africa > global
type antarctica >> global
....
type southamerica >> global

N�tese que el primero es un sigo de mayor que, y los siguientes con dos signos, de modo que el primero crea el archivo y los siguientes a�aden al final. El orden no es importate.

Ya me contar�s.

Reply by email

Juan M. Puertas
to José Mejuto

Hola Jose:
Era eso, la he liado con las bases de datos por ser un principiante con L�zarus.
�Muchas gracias por tu trabajo con PascalTZ y por tu rapid�sima respuesta! :-)
Que tengas unas felices fiestas.

El 18 de diciembre de 2014, 17:57, Jos� Mejuto <joshyfun en gmail.com> escribi�:

Show quoted text 53 lines
El 18/12/2014 a las 17:19, Juan M. Puertas escribi�: > Hola Jose, encantado de saludarte. > En realidad sucede con cualquier fecha en la que exista una hora de > verano en Espa�a. Sea horario de invierno o de verano, siempre devuelve > una hora de diferencia respecto a GMT, cuando en verano deber�a devolver > dos horas. > Aqu� est� el c�digo que utilizo: > > [...] > ptz.ParseDatabaseFromFile('tzdatabase/africa'); > ptz.ParseDatabaseFromFile('tzdatabase/antarctica'); > ptz.ParseDatabaseFromFile('tzdatabase/asia'); > ptz.ParseDatabaseFromFile('tzdatabase/australasia'); > ptz.ParseDatabaseFromFile('tzdatabase/etcetera'); > ptz.ParseDatabaseFromFile('tzdatabase/europe'); > ptz.ParseDatabaseFromFile('tzdatabase/northamerica'); > ptz.ParseDatabaseFromFile('tzdatabase/pacificnew'); > ptz.ParseDatabaseFromFile('tzdatabase/southamerica'); > [...] Hola, El ParseDatabaseFromFile s�lo se puede llamar una vez, si no la liamos :) Crea un fichero llamado, por ejemplo, global.txt con el contenido de todas las zonas que quieras usar, y carga s�lo esa. Yo creo recordar que lo hice en DOS con: type africa > global type antarctica >> global .... type southamerica >> global N�tese que el primero es un sigo de mayor que, y los siguientes con dos signos, de modo que el primero crea el archivo y los siguientes a�aden al final. El orden no es importate. Ya me contar�s. -- _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
*Nota: Por problemas con el e-mail. Puede que recibas de nuevo este mensaje en un tiempo.* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20141218/4ee1d404/attachment.html>

Reply by email

Paola Bruccoleri
to Juan M. Puertas

El 18/12/2014 a las 16:27, Juan M. Puertas escribi�:

Show quoted text 7 lines
Hola Jose: Era eso, la he liado con las bases de datos por ser un principiante con L�zarus. �Muchas gracias por tu trabajo con PascalTZ y por tu rapid�sima respuesta! :-) Que tengas unas felices fiestas.

Hola todos..
estoy perdida.. qu� es PascalTZ?
byeeeeeee

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20141218/838e7ce9/attachment.html>

Reply by email

José Mejuto
to Paola Bruccoleri

El 18/12/2014 a las 19:36, Paola Bruccoleri escribi�:

Show quoted text 7 lines
> �Muchas gracias por tu trabajo con PascalTZ y por tu rapid�sima > respuesta! :-) > Que tengas unas felices fiestas. > Hola todos.. estoy perdida.. qu� es PascalTZ? byeeeeeee

Hola,

http://wiki.lazarus.freepascal.org/PascalTZ

PascalTZ aka Pascal Time Zone es una unit que te permite cambiar momentos en el tiempo de uso horario, o bien calcula que fecha y hora ser� dentro de 3 meses, 6 horas y 15 minutos; o bien que hora era hace 7 a�os en Venezuela a las 12:00 hora central europea.

Esto que parece tan simple, en realidad es bastante complejo, ya que siqueremos cambiar la hora actual (ahora mismo) en cualquier parte del mundo es f�cil, cogemos la diferencia de sus zonas horarias y hacemos la operaci�n. Pero hay casos complejos como por ejemplo en Espa�a:

Dadas las 3:10 AM del 26 de octubre de 2014 hora local, a esta hora hay que quitarle 15 minutos. � Qu� hora ser�a ? La respuesta parece obvia, las 2:55, pero no, ser�an las 1:55 AM ya que a las 2:00 se produjo un cambio horario, donde las 2:00 pasaron a ser las 3:00.

Dise�� la unit porque ten�a que convertir logs en horario local a GMT, pero los logs eran de hasta 6 meses de antig�edad y de distintas localizaciones, lo cual implicaba realizar comprobaciones independientes para cada uno y cada vez que met�as una zona horaria nueva hab�a que recompilar. As� le dices s�lo en que uso horario est� cada log y listo.

Reply by email

Martin Gomez
to José Mejuto

Muy util!
No ten�a idea que existiera, gracias Jos�.

2014-12-18 19:28 GMT-03:00 Jos� Mejuto <joshyfun en gmail.com>:

Show quoted text 46 lines
El 18/12/2014 a las 19:36, Paola Bruccoleri escribi�: �Muchas gracias por tu trabajo con PascalTZ y por tu rapid�sima >> respuesta! :-) >> Que tengas unas felices fiestas. >> >> Hola todos.. > estoy perdida.. qu� es PascalTZ? > byeeeeeee > Hola, http://wiki.lazarus.freepascal.org/PascalTZ PascalTZ aka Pascal Time Zone es una unit que te permite cambiar momentos en el tiempo de uso horario, o bien calcula que fecha y hora ser� dentro de 3 meses, 6 horas y 15 minutos; o bien que hora era hace 7 a�os en Venezuela a las 12:00 hora central europea. Esto que parece tan simple, en realidad es bastante complejo, ya que siqueremos cambiar la hora actual (ahora mismo) en cualquier parte del mundo es f�cil, cogemos la diferencia de sus zonas horarias y hacemos la operaci�n. Pero hay casos complejos como por ejemplo en Espa�a: Dadas las 3:10 AM del 26 de octubre de 2014 hora local, a esta hora hay que quitarle 15 minutos. � Qu� hora ser�a ? La respuesta parece obvia, las 2:55, pero no, ser�an las 1:55 AM ya que a las 2:00 se produjo un cambio horario, donde las 2:00 pasaron a ser las 3:00. Dise�� la unit porque ten�a que convertir logs en horario local a GMT, pero los logs eran de hasta 6 meses de antig�edad y de distintas localizaciones, lo cual implicaba realizar comprobaciones independientes para cada uno y cada vez que met�as una zona horaria nueva hab�a que recompilar. As� le dices s�lo en que uso horario est� cada log y listo. -- _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
? Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program. ? ? *Linus Torvalds* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20141219/9f60a4bc/attachment-0001.html>

Reply by email

Juan M. Puertas
to Martin Gomez

Os dejo aqu� c�mo unir toda la base de datos desde el terminal de Linux:

cat africa antarctica asia australasia etcetera europe northamerica pacificnew southamerica > global

Gracias :-)

El 19 de diciembre de 2014, 4:06, Martin Gomez <mmgomez en gmail.com> escribi�:

Show quoted text 67 lines
Muy util! No ten�a idea que existiera, gracias Jos�. 2014-12-18 19:28 GMT-03:00 Jos� Mejuto <joshyfun en gmail.com>: > El 18/12/2014 a las 19:36, Paola Bruccoleri escribi�: > > �Muchas gracias por tu trabajo con PascalTZ y por tu rapid�sima >>> respuesta! :-) >>> Que tengas unas felices fiestas. >>> >>> Hola todos.. >> estoy perdida.. qu� es PascalTZ? >> byeeeeeee >> > > Hola, > > http://wiki.lazarus.freepascal.org/PascalTZ > > PascalTZ aka Pascal Time Zone es una unit que te permite cambiar momentos > en el tiempo de uso horario, o bien calcula que fecha y hora ser� dentro de > 3 meses, 6 horas y 15 minutos; o bien que hora era hace 7 a�os en Venezuela > a las 12:00 hora central europea. > > Esto que parece tan simple, en realidad es bastante complejo, ya que > siqueremos cambiar la hora actual (ahora mismo) en cualquier parte del > mundo es f�cil, cogemos la diferencia de sus zonas horarias y hacemos la > operaci�n. Pero hay casos complejos como por ejemplo en Espa�a: > > Dadas las 3:10 AM del 26 de octubre de 2014 hora local, a esta hora hay > que quitarle 15 minutos. � Qu� hora ser�a ? La respuesta parece obvia, las > 2:55, pero no, ser�an las 1:55 AM ya que a las 2:00 se produjo un cambio > horario, donde las 2:00 pasaron a ser las 3:00. > > Dise�� la unit porque ten�a que convertir logs en horario local a GMT, > pero los logs eran de hasta 6 meses de antig�edad y de distintas > localizaciones, lo cual implicaba realizar comprobaciones independientes > para cada uno y cada vez que met�as una zona horaria nueva hab�a que > recompilar. As� le dices s�lo en que uso horario est� cada log y listo. > > > -- > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > -- ? Most good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program. ? ? *Linus Torvalds* _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es
*Nota: Por problemas con el e-mail. Puede que recibas de nuevo este mensaje en un tiempo.* ------------ pr�xima parte ------------ Se ha borrado un adjunto en formato HTML... URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20141219/df05b37d/attachment.html>

Reply by email

Paola Bruccoleri
to José Mejuto: El 18/12/2014 a las 19:36, Paola Bruccoleri escribi�:…

Hola Jos�...
felicitaciones por el trabajo; entiendo si que no debe ser nada f�cil.. por suerte nunca necesit� hacer nada de eso:) pero por lo menos s� que existe esa unit!
d�nde est� publicada? o ya viene con las nuevas versiones? muchas gracias!

----Original Message---- De: joshyfun en gmail.com Fecha: 18/12/2014 19:28 Para: "Spanish version of Lazarus List"<lazarus-es en lists.lazarus.

freepascal.org>

Show quoted text 19 lines
Asunto: Re: [Lazarus-es] Hora de verano en Espa�a con PascalTZ El 18/12/2014 a las 19:36, Paola Bruccoleri escribi�: >> �Muchas gracias por tu trabajo con PascalTZ y por tu rapid�sima >> respuesta! :-) >> Que tengas unas felices fiestas. >> > Hola todos.. > estoy perdida.. qu� es PascalTZ? > byeeeeeee Hola, http://wiki.lazarus.freepascal.org/PascalTZ PascalTZ aka Pascal Time Zone es una unit que te permite cambiar momentos en el tiempo de uso horario, o bien calcula que fecha y hora ser� dentro de 3 meses, 6 horas y 15 minutos; o bien que hora era hace

7

a�os en Venezuela a las 12:00 hora central europea. Esto que parece tan simple, en realidad es bastante complejo, ya que siqueremos cambiar la hora actual (ahora mismo) en cualquier parte

del

mundo es f�cil, cogemos la diferencia de sus zonas horarias y hacemos

la

operaci�n. Pero hay casos complejos como por ejemplo en Espa�a: Dadas las 3:10 AM del 26 de octubre de 2014 hora local, a esta hora

hay

que quitarle 15 minutos. � Qu� hora ser�a ? La respuesta parece

obvia,

las 2:55, pero no, ser�an las 1:55 AM ya que a las 2:00 se produjo un cambio horario, donde las 2:00 pasaron a ser las 3:00. Dise�� la unit porque ten�a que convertir logs en horario local a

GMT,

pero los logs eran de hasta 6 meses de antig�edad y de distintas localizaciones, lo cual implicaba realizar comprobaciones

independientes

para cada uno y cada vez que met�as una zona horaria nueva hab�a que recompilar. As� le dices s�lo en que uso horario est� cada log y

listo.

Reply by email

Paola Bruccoleri
to José Mejuto

El 19/12/2014 a las 12:52, Jos� Mejuto escribi�:

Show quoted text 15 lines
El 19/12/2014 a las 12:54, Paola Bruccoleri escribi�: > Hola Jos�... > felicitaciones por el trabajo; entiendo si que no debe ser nada f�cil.. > por suerte nunca necesit� hacer nada de eso:) pero por lo menos s� que > existe esa unit! > d�nde est� publicada? o ya viene con las nuevas versiones? > muchas gracias! Hola, La puedes descargar de http://sourceforge.net/projects/lazarus-ccr/files/PascalTZ/

ok, muchas gracias!
byeeee

Reply by email